<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >assert</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" TITLE="Manual do PHP" HREF="index.html"><LINK REL="UP" TITLE="PHP Opções e Informações" HREF="ref.info.html"><LINK REL="PREVIOUS" TITLE="assert_options" HREF="function.assert-options.html"><LINK REL="NEXT" TITLE="dl" HREF="function.dl.html"><META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"></HEAD ><BODY CLASS="refentry" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="3" ALIGN="center" >Manual do PHP</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="function.assert-options.html" ACCESSKEY="P" >Anterior</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" ></TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="function.dl.html" ACCESSKEY="N" >Próxima</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><H1 ><A NAME="function.assert" ></A >assert</H1 ><DIV CLASS="refnamediv" ><A NAME="AEN176119" ></A ><P > (PHP 4, PHP 5)</P >assert -- Confere se uma afirmação é <TT CLASS="constant" ><B >FALSE</B ></TT ></DIV ><DIV CLASS="refsect1" ><A NAME="AEN176123" ></A ><H2 >Descrição</H2 >int <B CLASS="methodname" >assert</B > ( mixed assertion )<BR ></BR ><P > <B CLASS="function" >assert()</B > se a afirmação <CODE CLASS="parameter" >assertion</CODE > é falsa e toma a ação apropriada. </P ><P > Se o parâmetro <CODE CLASS="parameter" >assertion</CODE > é dado como uma string ela será avaliada como código PHP pela função <B CLASS="function" >assert()</B >. As vantagens da string <CODE CLASS="parameter" >assertion</CODE > são menor sobrecarga quando conferir se a afirmação é verdadeira e mensagens contendo <CODE CLASS="parameter" >assertion</CODE > quando a afirmação é falsa. Isto indica que se você passar uma condição booleana(verdadeiro ou falso) como <CODE CLASS="parameter" >assertion</CODE > 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 <A HREF="function.assert-options.html" ><B CLASS="function" >assert_options()</B ></A >, a condição é convertida para uma string antes que a função gerenciadora seja chamada e o booleano <TT CLASS="constant" ><B >FALSE</B ></TT > é convertido para uma string vazia. </P ><P > 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 <TT CLASS="constant" ><B >TRUE</B ></TT > 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. </P ><P > 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. </P ><P > O funcionamento de <B CLASS="function" >assert()</B > pode ser configurado por <A HREF="function.assert-options.html" ><B CLASS="function" >assert_options()</B ></A > ou pelas configurações descritas na pagina do manual para estas funções. </P ><P > A função <A HREF="function.assert-options.html" ><B CLASS="function" >assert_options()</B ></A > e/ou a diretiva de configuração ASSERT_CALLBACK permitem configurar uma função para ser chamada no caso de falha da afirmação. </P ><P > Funções chamadas a partir de falhas de <B CLASS="function" >assert()</B > 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! </P ><P > 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). </P ><P > <TABLE WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" CLASS="EXAMPLE" ><TR ><TD ><DIV CLASS="example" ><A NAME="AEN176154" ></A ><P ><B >Exemplo 1. Gerenciado uma afirmação que falhou com uma função do usuário</B ></P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><code><font color="#000000"> <font color="#0000BB"><?php<br /></font><font color="#FF8000">// Ativa as afirmações e as deixa quietas<br /></font><font color="#0000BB">assert_options</font><font color="#007700">(</font><font color="#0000BB">ASSERT_ACTIVE</font><font color="#007700">, </font><font color="#0000BB">1</font><font color="#007700">);<br /></font><font color="#0000BB">assert_options</font><font color="#007700">(</font><font color="#0000BB">ASSERT_WARNING</font><font color="#007700">, </font><font color="#0000BB">0</font><font color="#007700">);<br /></font><font color="#0000BB">assert_options</font><font color="#007700">(</font><font color="#0000BB">ASSERT_QUIET_EVAL</font><font color="#007700">, </font><font color="#0000BB">1</font><font color="#007700">);<br /><br /></font><font color="#FF8000">// Cria a função do usuário que será chamada quando a afirmação falhar<br /></font><font color="#007700">function </font><font color="#0000BB">my_assert_handler</font><font color="#007700">(</font><font color="#0000BB">$file</font><font color="#007700">, </font><font color="#0000BB">$line</font><font color="#007700">, </font><font color="#0000BB">$code</font><font color="#007700">)<br />{<br /> echo </font><font color="#DD0000">"<hr>Afirmação falhou:<br /> Arquivo '$file'<br /><br /> Linha '$line'<br /><br /> Código '$code'<br /><hr />"</font><font color="#007700">;<br />}<br /><br /></font><font color="#FF8000">// Define a função<br /></font><font color="#0000BB">assert_options</font><font color="#007700">(</font><font color="#0000BB">ASSERT_CALLBACK</font><font color="#007700">, </font><font color="#DD0000">'my_assert_handler'</font><font color="#007700">);<br /><br /></font><font color="#FF8000">// Faz uma afirmação que irá falhar<br /></font><font color="#0000BB">assert</font><font color="#007700">(</font><font color="#DD0000">'mysql_query ("")'</font><font color="#007700">);<br /></font><font color="#0000BB">?></font> </font> </code></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE > </P ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="function.assert-options.html" ACCESSKEY="P" >Anterior</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >Principal</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="function.dl.html" ACCESSKEY="N" >Próxima</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >assert_options</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="ref.info.html" ACCESSKEY="U" >Acima</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >dl</TD ></TR ></TABLE ></DIV ></BODY ></HTML >