<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >Variáveis</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="Manipulação de tipos" HREF="language.types.type-juggling.html"><LINK REL="NEXT" TITLE="Variáveis Predefinidas" HREF="language.variables.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.types.type-juggling.html" ACCESSKEY="P" >Anterior</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" ></TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="language.variables.predefined.html" ACCESSKEY="N" >Próxima</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="chapter" ><H1 ><A NAME="language.variables" >Capítulo 12. Variáveis</A ></H1 ><DIV CLASS="TOC" ><DL ><DT ><B >Índice</B ></DT ><DT ><A HREF="language.variables.html#language.variables.basics" >Introdução</A ></DT ><DT ><A HREF="language.variables.predefined.html" >Variáveis Predefinidas</A ></DT ><DT ><A HREF="language.variables.scope.html" >Escopo de variáveis</A ></DT ><DT ><A HREF="language.variables.variable.html" >Variáveis variáveis</A ></DT ><DT ><A HREF="language.variables.external.html" >Variáveis externas ao PHP</A ></DT ></DL ></DIV ><DIV CLASS="sect1" ><H1 CLASS="sect1" ><A NAME="language.variables.basics" >Introdução</A ></H1 ><P > As variáveis no PHP são representadas por um cifrão ($) seguido pelo nome da variável. Os nomes de variável no PHP fazem distinção entre maiúsculas e minúsculas. </P ><P > Os nomes de variável seguem as mesmas regras como outros rótulos no PHP. Um nome de variável válido se inicia com uma letra ou sublinhado, seguido de qualquer número de letras, algarismos ou sublinhados. Em uma expressão regular isto poderia ser representado desta forma: '[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*' </P ><DIV CLASS="note" ><BLOCKQUOTE CLASS="note" ><P ><B >Nota: </B > Para nossos propósitos, as letras a-z, A-Z e os caracteres ASCII de 127 a 255 (0x7f-0xff). </P ></BLOCKQUOTE ></DIV ><P > <DIV CLASS="informalexample" ><P ></P ><A NAME="AEN3615" ></A ><TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><code><font color="#000000"> <font color="#0000BB"><?php<br />$var </font><font color="#007700">= </font><font color="#DD0000">"Bob"</font><font color="#007700">;<br /></font><font color="#0000BB">$Var </font><font color="#007700">= </font><font color="#DD0000">"Joe"</font><font color="#007700">;<br />echo </font><font color="#DD0000">"$var, $Var"</font><font color="#007700">; </font><font color="#FF8000">// exibe "Bob, Joe"<br /><br /></font><font color="#007700">$</font><font color="#0000BB">4site </font><font color="#007700">= </font><font color="#DD0000">'not yet'</font><font color="#007700">; </font><font color="#FF8000">// inválido; começa com um número<br /></font><font color="#0000BB">$_4site </font><font color="#007700">= </font><font color="#DD0000">'not yet'</font><font color="#007700">; </font><font color="#FF8000">// válido; começa com um sublinhado<br /></font><font color="#0000BB">$täyte </font><font color="#007700">= </font><font color="#DD0000">'mansikka'</font><font color="#007700">; </font><font color="#FF8000">// válido; 'ä' é um caracter ASCII (extendido) 228<br /></font><font color="#0000BB">?></font> </font> </code></TD ></TR ></TABLE ><P ></P ></DIV > </P ><P > No PHP 3, as variáveis são sempre atribuídas por valor. Isto significa que quando você atribui uma expressão a uma variável, o valor da expressão original é copiado integralmente para a variável de destino. Isto significa também que, após atribuir o valor de uma variável a outra, a alteração de uma destas variáveis não afetará a outra. Para maiores informações sobre este tipo de atribuição, veja o capítulo em <A HREF="language.expressions.html" >Expressões</A >. </P ><P > O PHP 4 oferece um outro meio de atribuir valores a variáveis: a <A HREF="language.references.html" >atribuição por referência</A >. Isto significa que a nova variável simplesmente referencia (em outras palavras, "torna-se um apelido para" ou "aponta para") a variável original. Alterações na nova variável afetam a original e vice versa. Isto significa também que nenhuma cópia é realizada, de modo que a atribuição ocorre mais rapidamente. Entretanto, qualquer aumento de velocidade só será realmente notado em *loops* complexos ou em atribuições de grandes <A HREF="language.types.array.html" >arrays</A > ou <A HREF="language.types.object.html" >objetos</A >. </P ><P > Para atribuir por referência, simplesmente adicione um e-comercial (&) na frente do nome da variável que estiver sendo atribuída (variável de origem) Por exemplo, o trecho de código abaixo imprime 'My name is Bob' duas vezes: <DIV CLASS="informalexample" ><P ></P ><A NAME="AEN3624" ></A ><TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><code><font color="#000000"> <font color="#0000BB"><?php<br />$foo </font><font color="#007700">= </font><font color="#DD0000">'Bob'</font><font color="#007700">; </font><font color="#FF8000">// Atribui o valor 'Bob' a variável $foo<br /></font><font color="#0000BB">$bar </font><font color="#007700">= &</font><font color="#0000BB">$foo</font><font color="#007700">; </font><font color="#FF8000">// Referecia $foo através de $bar.<br /></font><font color="#0000BB">$bar </font><font color="#007700">= </font><font color="#DD0000">"My name is $bar"</font><font color="#007700">; </font><font color="#FF8000">// Altera $bar...<br /></font><font color="#007700">echo </font><font color="#0000BB">$bar</font><font color="#007700">;<br />echo </font><font color="#0000BB">$foo</font><font color="#007700">; </font><font color="#FF8000">// $foo é alterada também.<br /></font><font color="#0000BB">?></font> </font> </code></TD ></TR ></TABLE ><P ></P ></DIV > </P ><P > Uma observação importante a se fazer: somente variáveis nomeadas podem ser atribuídas por referência. <DIV CLASS="informalexample" ><P ></P ><A NAME="AEN3627" ></A ><TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><code><font color="#000000"> <font color="#0000BB"><?php<br />$foo </font><font color="#007700">= </font><font color="#0000BB">25</font><font color="#007700">;<br /></font><font color="#0000BB">$bar </font><font color="#007700">= &</font><font color="#0000BB">$foo</font><font color="#007700">; </font><font color="#FF8000">// Esta atribuição é válida.<br /></font><font color="#0000BB">$bar </font><font color="#007700">= &(</font><font color="#0000BB">24 </font><font color="#007700">* </font><font color="#0000BB">7</font><font color="#007700">); </font><font color="#FF8000">// Inválido; referencia uma expressão sem nome.<br /><br /></font><font color="#007700">function </font><font color="#0000BB">test</font><font color="#007700">()<br />{<br /> return </font><font color="#0000BB">25</font><font color="#007700">;<br />}<br /><br /></font><font color="#0000BB">$bar </font><font color="#007700">= &</font><font color="#0000BB">test</font><font color="#007700">(); </font><font color="#FF8000">// Inválido.<br /></font><font color="#0000BB">?></font> </font> </code></TD ></TR ></TABLE ><P ></P ></DIV > </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.types.type-juggling.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.variables.predefined.html" ACCESSKEY="N" >Próxima</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >Manipulação de tipos</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="langref.html" ACCESSKEY="U" >Acima</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >Variáveis Predefinidas</TD ></TR ></TABLE ></DIV ></BODY ></HTML >