PHP 7 - Expectativas

Expectationssão um aprimoramento compatível com versões anteriores da função assert () mais antiga. A expectativa permite asserções de custo zero no código de produção e fornece a capacidade de lançar exceções customizadas quando a asserção falha. assert () é agora uma construção de linguagem, onde o primeiro parâmetro é uma expressão em comparação a ser uma string ou booleano a ser testado.

Diretivas de configuração para assert ()

Diretriz Valor padrão Valores possíveis
zend.assertions 1

1 - gerar e executar código (modo de desenvolvimento)

0 - gerar código, mas pular em tempo de execução

-1 - não gerar código (modo de produção)

assert.exception 0

1 - lançar, quando a afirmação falhar, seja lançando o objeto fornecido como exceção ou lançando um novo AssertionError objeto se a exceção não foi fornecida.

0 - use ou gere um Throwable conforme descrito acima, mas apenas gera um aviso baseado naquele objeto ao invés de lançá-lo (compatível com o comportamento do PHP 5)

Parâmetros

  • assertion- A afirmação. No PHP 5, deve ser uma string a ser avaliada ou um Booleano a ser testado. No PHP 7, também pode ser qualquer expressão que retorna um valor, que será executado e o resultado é usado para indicar se a asserção foi bem-sucedida ou falhou.

  • description - Uma descrição opcional que será incluída na mensagem de falha, se a asserção falhar.

  • exception - No PHP 7, o segundo parâmetro pode ser um Throwable objeto em vez de uma string descritiva, caso em que este é o objeto que será lançado, se a declaração falhar e o assert.exception a diretiva de configuração está habilitada.

Valores Retornados

FALSE se a afirmação for falsa, TRUE de outra forma.

Exemplo

<?php
   ini_set('assert.exception', 1);

   class CustomError extends AssertionError {}

   assert(false, new CustomError('Custom Error Message!'));
?>

Ele produz a seguinte saída do navegador -

Fatal error: Uncaught CustomError: Custom Error Message! in...