<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/language.variables.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'pt_BR',
  ),
  'this' => 
  array (
    0 => 'language.variables.basics.php',
    1 => 'B&aacute;sico',
    2 => 'B&aacute;sico',
  ),
  'up' => 
  array (
    0 => 'language.variables.php',
    1 => 'Vari&aacute;veis',
  ),
  'prev' => 
  array (
    0 => 'language.variables.php',
    1 => 'Vari&aacute;veis',
  ),
  'next' => 
  array (
    0 => 'language.variables.predefined.php',
    1 => 'Vari&aacute;veis Predefinidas',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'pt_BR',
    'path' => 'language/variables.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="language.variables.basics" class="sect1">
   <h2 class="title">Básico</h2>

   <p class="simpara">
    As variáveis no PHP são representadas por um cifrão ($) seguido pelo
    nome da variável. Os nomes de variável são sensíveis a maiúsculas e minúsculas.
   </p>

   <p class="para">
    Um nome válido de variável inicia com uma letra
    (<code class="literal">A-Z</code>, <code class="literal">a-z</code>, ou os bytes de 128 a 255)
    ou sublinhado, seguido
    de qualquer número de letras, números ou sublinhados. Em uma
    expressão regular, poderia ser representado assim:
    <code class="code">^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$</code>
   </p>

   <blockquote class="note"><p><strong class="note">Nota</strong>: 
    <span class="simpara">
     O PHP não suporta nomes de variáveis em Unicode, porém, algumas codificações
     de caracteres (tal como UTF-8) codificam os caracteres de uma forma que todos os bytes
     de um caractere multibyte fiquem dentro da faixa permitida, fazendo com que
     o nome da variável seja válido.
    </span>
   </p></blockquote>

   <blockquote class="note"><p><strong class="note">Nota</strong>: 
    <span class="simpara">
     <code class="literal">$this</code> é uma variável especial que não pode ser
     atribuída.
     Antes do PHP 7.1.0, atribuição indireta (por exemplo, usando
     <a href="language.variables.variable.php" class="link">variáveis variáveis</a>)
     era possível.
    </span>
   </p></blockquote>

   <div class="tip"><strong class="tip">Dica</strong><p class="simpara">Veja também o
<a href="userlandnaming.php" class="xref">Guia de nomenclatura em espa&ccedil;o de usu&aacute;rio</a>.</p></div>

   <div class="example" id="example-1">
    <p><strong>Exemplo #1 Nomes de variáveis válidos</strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$var </span><span style="color: #007700">= </span><span style="color: #DD0000">'Bob'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$Var </span><span style="color: #007700">= </span><span style="color: #DD0000">'Joe'</span><span style="color: #007700">;<br />echo </span><span style="color: #DD0000">"</span><span style="color: #0000BB">$var</span><span style="color: #DD0000">, </span><span style="color: #0000BB">$Var</span><span style="color: #DD0000">"</span><span style="color: #007700">;      </span><span style="color: #FF8000">// exibe "Bob, Joe"<br /><br /></span><span style="color: #0000BB">$_4site </span><span style="color: #007700">= </span><span style="color: #DD0000">'not yet'</span><span style="color: #007700">;    </span><span style="color: #FF8000">// válido; começa com um sublinhado<br /></span><span style="color: #0000BB">$täyte </span><span style="color: #007700">= </span><span style="color: #DD0000">'mansikka'</span><span style="color: #007700">;    </span><span style="color: #FF8000">// válido; 'ä' é um caracter ASCII (estendido) 228<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>

   <div class="example" id="example-2">
    <p><strong>Exemplo #2 Nomes de variáveis inválidos</strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">$</span><span style="color: #0000BB">4site </span><span style="color: #007700">= </span><span style="color: #DD0000">'not yet'</span><span style="color: #007700">;     </span><span style="color: #FF8000">// inválido; começa com um número</span></span></code></div>
    </div>

   </div>

   <p class="simpara">
    O PHP aceita uma sequência de quaisquer bytes como um nome de variável. Nomes
    de variáveis que não seguem as regras de nomenclatura mencionadas acima só podem ser
    acessadas dinamicamente no momento da execução. Consulte a seção sobre
    <a href="language.variables.variable.php" class="link">variáveis variáveis</a>
    para informação sobre como acessá-las.
   </p>

   <div class="example" id="example-3">
    <p><strong>Exemplo #3 Acessando nomes obscuros de variáveis</strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">${</span><span style="color: #DD0000">'invalid-name'</span><span style="color: #007700">} = </span><span style="color: #DD0000">'bar'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$name </span><span style="color: #007700">= </span><span style="color: #DD0000">'invalid-name'</span><span style="color: #007700">;<br />echo ${</span><span style="color: #DD0000">'invalid-name'</span><span style="color: #007700">}, </span><span style="color: #DD0000">" "</span><span style="color: #007700">, $</span><span style="color: #0000BB">$name</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    <div class="example-contents"><p>O exemplo acima produzirá:</p></div>
    <div class="example-contents screen">
<div class="cdata"><pre>
bar bar
</pre></div>
    </div>
   </div>

   <p class="para">
    Por padrão, as variáveis são sempre atribuídas por valor. Isto significa
    que ao atribuir 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.php" class="link">Expressões</a>.
   </p>
   <p class="para">
    O PHP também oferece um outro meio de atribuir valores a variáveis:
    <a href="language.references.php" class="link">atribuição por referência</a>.
    Isto significa que a nova variável simplesmente referencia (em outras palavras,
    &quot;torna-se um apelido para&quot; ou &quot;aponta para&quot;) a variável original.
    Alterações na nova variável afetam a original, e vice-versa.
   </p>
   <p class="para">
    Para atribuir por referência, simplesmente adicione um e-comercial (&amp;)
    na frente do nome da variável que estiver sendo atribuída (variável
    de origem). Por exemplo, o trecho de código abaixo exibe &#039;<code class="literal">My
    name is Bob</code>&#039; duas vezes:

    <div class="informalexample">
     <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$foo </span><span style="color: #007700">= </span><span style="color: #DD0000">'Bob'</span><span style="color: #007700">;              </span><span style="color: #FF8000">// Atribui o valor 'Bob' a variável $foo<br /></span><span style="color: #0000BB">$bar </span><span style="color: #007700">= &amp;</span><span style="color: #0000BB">$foo</span><span style="color: #007700">;              </span><span style="color: #FF8000">// Referencia $foo através de $bar.<br /></span><span style="color: #0000BB">$bar </span><span style="color: #007700">= </span><span style="color: #DD0000">"My name is </span><span style="color: #0000BB">$bar</span><span style="color: #DD0000">"</span><span style="color: #007700">;  </span><span style="color: #FF8000">// Altera $bar...<br /></span><span style="color: #007700">echo </span><span style="color: #0000BB">$bar</span><span style="color: #007700">;<br />echo </span><span style="color: #0000BB">$foo</span><span style="color: #007700">;                 </span><span style="color: #FF8000">// $foo é alterada também.<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
     </div>

    </div>
   </p>

   <p class="para">
    Uma observação importante a se fazer, é que somente variáveis
    podem ser atribuídas por referência.
    <div class="informalexample">
     <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$foo </span><span style="color: #007700">= </span><span style="color: #0000BB">25</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$bar </span><span style="color: #007700">= &amp;</span><span style="color: #0000BB">$foo</span><span style="color: #007700">;      </span><span style="color: #FF8000">// Esta atribuição é válida.<br /></span><span style="color: #0000BB">$bar </span><span style="color: #007700">= &amp;(</span><span style="color: #0000BB">24 </span><span style="color: #007700">* </span><span style="color: #0000BB">7</span><span style="color: #007700">);  </span><span style="color: #FF8000">// Inválido; referencia uma expressão sem nome.<br /><br /></span><span style="color: #007700">function </span><span style="color: #0000BB">test</span><span style="color: #007700">()<br />{<br />   return </span><span style="color: #0000BB">25</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #0000BB">$bar </span><span style="color: #007700">= &amp;</span><span style="color: #0000BB">test</span><span style="color: #007700">();    </span><span style="color: #FF8000">// Inválido porque test() não retorna uma variável por referência.<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
     </div>

    </div>
   </p>

   <p class="para">
    Não é necessário declarar variáveis no PHP, contudo é uma ótima
    prática. Acessar uma variável indefinida resultará em um
    <strong><code><a href="errorfunc.constants.php#constant.e-warning">E_WARNING</a></code></strong> (antes do PHP 8.0.0, <strong><code><a href="errorfunc.constants.php#constant.e-notice">E_NOTICE</a></code></strong>).
    Uma variável indefinida tem um valor padrão de <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong>.
    O construtor de linguagem <span class="function"><a href="function.isset.php" class="function">isset()</a></span>
    pode ser usado para detectar se uma variável já foi inicializada.
   </p>
   <p class="para">
    <div class="example" id="example-4">
     <p><strong>Exemplo #4 Valor padrão de uma variável não inicializada</strong></p>
     <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">// Variável não definida E não referenciada (sem contexto de uso);<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$unset_var</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
     </div>

     <div class="example-contents"><p>O exemplo acima produzirá:</p></div>
     <div class="example-contents screen">
<div class="cdata"><pre>
Warning: Undefined variable $unset_var in ...
NULL
</pre></div>
     </div>
    </div>
   </p>

   <p class="simpara">
    O PHP permite autovivificação de array (criação automática de novos arrays)
    a partir de uma variável indefinida.
    Anexar um elemento a uma variável indefinida criará um novo array e
    não gerará um alerta.
   </p>
   <div class="example" id="example-5">
    <p><strong>Exemplo #5 Autovivificação de um array a partir de uma variável indefinida</strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$unset_array</span><span style="color: #007700">[] = </span><span style="color: #DD0000">'value'</span><span style="color: #007700">; </span><span style="color: #FF8000">// Não gera um alerta.<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>

   <div class="warning"><strong class="warning">Aviso</strong>
    <p class="simpara">
     Depender do valor padrão de uma variável não inicializada é problemático
     ao incluir um arquivo em outro que usa o mesmo
     nome de variável.
    </p>
   </div>

   <p class="simpara">
    Uma variável pode ser destruída usando o construtor de linguagem
    <span class="function"><a href="function.unset.php" class="function">unset()</a></span>.
   </p>

   <p class="simpara">
    Para obter informações sobre funções relacionadas a variáveis, consulte a
    <a href="ref.var.php" class="link">referência de funções variáveis</a>.
   </p>
  </div><?php manual_footer($setup); ?>