<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >Constantes</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="Referência da Linguagem" HREF="langref.html"><LINK REL="PREVIOUS" TITLE="Variáveis externas ao PHP" HREF="language.variables.external.html"><LINK REL="NEXT" TITLE="Constantes Mágicas" HREF="language.constants.predefined.html"><META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"></HEAD ><BODY CLASS="chapter" 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="language.variables.external.html" ACCESSKEY="P" >Anterior</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" ></TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="language.constants.predefined.html" ACCESSKEY="N" >Próxima</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="chapter" ><H1 ><A NAME="language.constants" >Capítulo 13. Constantes</A ></H1 ><DIV CLASS="TOC" ><DL ><DT ><B >Índice</B ></DT ><DT ><A HREF="language.constants.html#language.constants.syntax" >Sintaxe</A ></DT ><DT ><A HREF="language.constants.predefined.html" >Constantes Mágicas</A ></DT ></DL ></DIV ><P > Uma constante é um identificador (nome) para um único valor. Como o nome sugere, esse valor não pode mudar durante a execução do script (exceção às <A HREF="language.constants.predefined.html" > constantes mágicas</A >, que não são constantes de verdade). As constantes são sensíveis ao caso por padrão. Por convenção, o nomes de constantes são sempre em maiúsculas. </P ><P > O nome de uma constante tem as mesmas regras de qualquer identificador no PHP. Um nome de constante válida começa com uma letra ou sublinhado, seguido por qualquer número de letras, números ou sublinhados. Em expressões regulares, ela pode ser representada por: <TT CLASS="literal" >[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*</TT > </P ><DIV CLASS="tip" ><BLOCKQUOTE CLASS="tip" ><P ><B >Dica: </B >Você também pode querer dar uma ohada em <A HREF="userlandnaming.html" >Apêndice S</A >.</P ></BLOCKQUOTE ></DIV ><P > <TABLE WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" CLASS="EXAMPLE" ><TR ><TD ><DIV CLASS="example" ><A NAME="AEN3953" ></A ><P ><B >Exemplo 13-1. Nomes de constantes válidos e inválidos</B ></P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><code><font color="#000000"> <font color="#0000BB"><?php<br /><br /></font><font color="#FF8000">// Nomes de constantes válidos<br /></font><font color="#0000BB">define</font><font color="#007700">(</font><font color="#DD0000">"FOO"</font><font color="#007700">, </font><font color="#DD0000">"alguma coisa"</font><font color="#007700">);<br /></font><font color="#0000BB">define</font><font color="#007700">(</font><font color="#DD0000">"FOO2"</font><font color="#007700">, </font><font color="#DD0000">"alguma outra coisa"</font><font color="#007700">);<br /></font><font color="#0000BB">define</font><font color="#007700">(</font><font color="#DD0000">"FOO_BAR"</font><font color="#007700">, </font><font color="#DD0000">"alguma coisa mais"</font><font color="#007700">);<br /><br /></font><font color="#FF8000">// Nomes de constantes inválidas<br /></font><font color="#0000BB">define</font><font color="#007700">(</font><font color="#DD0000">"2FOO"</font><font color="#007700">, </font><font color="#DD0000">"alguma coisa"</font><font color="#007700">);<br /><br /></font><font color="#FF8000">// Isto é válido, mas deve ser evitado:<br />// O PHP pode vir a fornercer uma constante mágica<br />// que danificará seu script<br /></font><font color="#0000BB">define</font><font color="#007700">(</font><font color="#DD0000">"__FOO__"</font><font color="#007700">, </font><font color="#DD0000">"alguma coisa"</font><font color="#007700">);<br /><br /></font><font color="#0000BB">?></font> </font> </code></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE > </P ><DIV CLASS="note" ><BLOCKQUOTE CLASS="note" ><P ><B >Nota: </B > Para nossos exemplos, as letras a-z, A-Z e os caracteres ASCII do 127 ao 255 (0x7f-0xff). </P ></BLOCKQUOTE ></DIV ><P > Como as <A HREF="language.variables.predefined.html" >superglobals</A >, o escopo de uma constante é global. Você pode acessar constantes de qualquer lugar em seu script sem se preocupar com o escopo. Para mais informações sobre o escopo no PHP, leia a seção do manual <A HREF="language.variables.scope.html" >escopo de variáveis</A >. </P ><DIV CLASS="sect1" ><H1 CLASS="sect1" ><A NAME="language.constants.syntax" >Sintaxe</A ></H1 ><P > Você pode definir uma constante utilizando-se da função <A HREF="function.define.html" ><B CLASS="function" >define()</B ></A >. Quando uma constante é definida, ela não pode ser mais modificada ou anulada. </P ><P > Somente dados escalares (<A HREF="language.types.boolean.html" ><B CLASS="type" >boolean</B ></A >, <A HREF="language.types.integer.html" ><B CLASS="type" >integer</B ></A >, <A HREF="language.types.float.html" ><B CLASS="type" >float</B ></A > e <A HREF="language.types.string.html" ><B CLASS="type" >string</B ></A >) pode ser colocados em constantes. Não defina constantes do tipo <A HREF="language.types.resource.html" ><B CLASS="type" >resource</B ></A > (recurso). </P ><P > Você pode obter o valor de uma constante simplesmente especificando seu nome. Diferentemente de variáveis, você <SPAN CLASS="emphasis" ><I CLASS="emphasis" >não</I ></SPAN > pode prefixar uma constante com um sinal de <TT CLASS="literal" >$</TT >. Você também pode utilizar a função <A HREF="function.constant.html" ><B CLASS="function" >constant()</B ></A > para ler o valor de uma constante, se você precisar obter seu valor dinamicamente. Utilize <A HREF="function.get-defined-constants.html" ><B CLASS="function" >get_defined_constants()</B ></A > para obter a lista de todas as constantes definidas. </P ><DIV CLASS="note" ><BLOCKQUOTE CLASS="note" ><P ><B >Nota: </B > As constantes e variáveis (globais) estão em espaços de nomes diferentes. Isto implica, por exemplo, que <TT CLASS="constant" ><B >TRUE</B ></TT > e <CODE CLASS="varname" >$TRUE</CODE > são geralmente diferentes. </P ></BLOCKQUOTE ></DIV ><P > Se você usar uma constante indefinida, o PHP assume o nome da constante como seu próprio valor, como se você tivesse uma <A HREF="language.types.string.html" ><B CLASS="type" >string</B ></A > (CONSTANT vs "CONSTANT"). Um erro de nível <A HREF="ref.errorfunc.html" >E_NOTICE</A > será lançado quando isso acontecer. Veja também a referência do manual sobre como <A HREF="language.types.array.html#language.types.array.foo-bar" >$foo[bar]</A > é errado (a não ser que você primeiro <A HREF="function.define.html" ><B CLASS="function" >define()</B ></A > <TT CLASS="literal" >bar</TT > como uma constante). Se você simplesmente quer checar se uma constante foi definida, utilize a função <A HREF="function.defined.html" ><B CLASS="function" >defined()</B ></A >. </P ><P > Estas são as diferenças entre constantes e variáveis: <P ></P ><UL ><LI ><P > Constantes não podem ter um sinal de cifrão (<TT CLASS="literal" >$</TT >) antes delas; </P ></LI ><LI ><P > Constantes só podem ser definidas utilizando a função <A HREF="function.define.html" ><B CLASS="function" >define()</B ></A >, e não por simples assimilação; </P ></LI ><LI ><P > Constantes podem ser definidas e acessadas de qualquer lugar sem que a regras de escopo de variáveis seja aplicadas; </P ></LI ><LI ><P > Constantes não podem ser redefinidas ou eliminadas depois que elas são criadas; e </P ></LI ><LI ><P > Constantes só podem conter valores escalares. </P ></LI ></UL > </P ><P > <TABLE WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" CLASS="EXAMPLE" ><TR ><TD ><DIV CLASS="example" ><A NAME="AEN4002" ></A ><P ><B >Exemplo 13-2. Definindo Constantes</B ></P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><code><font color="#000000"> <font color="#0000BB"><?php<br />define</font><font color="#007700">(</font><font color="#DD0000">"CONSTANT"</font><font color="#007700">, </font><font color="#DD0000">"Hello world."</font><font color="#007700">);<br />echo </font><font color="#0000BB">CONSTANT</font><font color="#007700">; </font><font color="#FF8000">// imprime "Hello world."<br /></font><font color="#007700">echo </font><font color="#0000BB">Constant</font><font color="#007700">; </font><font color="#FF8000">// imprime "Constant" e gera um alerta notice.<br /></font><font color="#0000BB">?></font> </font> </code></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE > </P ><P > Veja também <A HREF="language.oop5.constants.html" >Constantes de Classe</A >. </P ></DIV ></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="language.variables.external.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="language.constants.predefined.html" ACCESSKEY="N" >Próxima</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >Variáveis externas ao PHP</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="langref.html" ACCESSKEY="U" >Acima</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >Constantes Mágicas</TD ></TR ></TABLE ></DIV ></BODY ></HTML >