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...