(PHP 4, PHP 5)
assert — Confere se uma afirmação é FALSE
assert() se a afirmação
assertion
é falsa e toma a ação apropriada.
Se o parâmetro assertion
é dado como uma string ela
será avaliada como código PHP pela função assert().
As vantagens da string assertion
são menor sobrecarga
quando conferir se a afirmação é verdadeira e mensagens contendo
assertion
quando a afirmação é falsa. Isto indica que se
você passar uma condição booleana(verdadeiro ou falso) como
assertion
esta condição não será mostrado como parâmetro
da função de afirmação, o qual você deve ter definido com a função
assert_options(), a condição é convertida para uma string antes
que a função gerenciadora seja chamada e o booleano FALSE
é convertido para uma string vazia.
Afirmações devem ser usadas apenas com a intenção de eliminar erros. Você deve usa-las
para testar condições que devam ser sempre TRUE
e que indiquem algum erro de programação
se não for ou para verificar a existência de certas coisas como a disponibilidade de funções
de algum módulo ou limites e recursos do sistema.
Afirmações não devem ser usadas para operações em tempo de execução normais como para conferir certo valor de entrada. Como uma dica de uso, o seu código deve funcionar corretamente mesmo que o teste de afirmações não esteja ativado.
O funcionamento de assert() pode ser configurado por assert_options() ou pelas configurações descritas na pagina do manual para estas funções.
A função assert_options() e/ou a diretiva de configuração ASSERT_CALLBACK permitem configurar uma função para ser chamada no caso de falha da afirmação.
Funções chamadas a partir de falhas de assert() são particularmente úteis quando estiver criando sistemas automáticos para testes porque permitem que você capture facilmente o código passado para a afirmação em conjunto com informações sobre onde a afirmação foi feita. Enquanto esta informação pode ser capturada por outros métodos, usar afirmações torna muito mais fácil e rápido!
A função utilizada para processar as afirmações devem aceitar três argumentos. O primeiro irá conter o arquivo onde houve a falha na afirmação. O segundo argumento irá conter a linha onde a afirmação falhou e o terceiro argumento irá conter a expressão que falhou (se houver alguma - valores literais como 1 ou "dois" não serão passados por este argumento).
assertion
A afirmação.
FALSE
se a afirmação for falsa, TRUE
se não.
Exemplo #1 Gerenciando uma afirmação que falhou com uma função do usuário
<?php
// Ativa as afirmações e as deixa quietas
assert_options(ASSERT_ACTIVE, 1);
assert_options(ASSERT_WARNING, 0);
assert_options(ASSERT_QUIET_EVAL, 1);
// Cria a função do usuário que será chamada quando a afirmação falhar
function my_assert_handler($file, $line, $code)
{
echo "<hr>Afirmação falhou:
Arquivo '$file'<br />
Linha '$line'<br />
Código '$code'<br /><hr />";
}
// Define a função
assert_options(ASSERT_CALLBACK, 'my_assert_handler');
// Faz uma afirmação que irá falhar
assert('mysql_query ("")');
?>