Forum und email

Variáveis

Índice

Introdução

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.

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]*'

Nota: Para nosso propósito, as letras a-z, A-Z e os caracteres ASCII de 127 a 255 (0x7f-0xff).

Nota: $this é uma variável especial que não pode ser atribuída.

Dica

Você também pode querer dar uma ohada em Guia de nomenclatura em espaço de usuário.

Para informação sobre funções relacionadas a variáveis, veja a Referência de funções para variáveis.

<?php
$var 
'Bob';
$Var 'Joe';
echo 
"$var, $Var";      // exibe "Bob, Joe"

$4site 'not yet';     // inválido; começa com um número
$_4site 'not yet';    // válido; começa com um sublinhado
$täyte 'mansikka';    // válido; 'ä' é um caracter ASCII (extendido) 228
?>

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 Expressões.

No PHP 4, PHP oferece um outro meio de atribuir valores a variáveis: atribuição por referência. 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.

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:

<?php
$foo 
'Bob';              // Atribui o valor 'Bob' a variável $foo
$bar = &$foo;              // Referecia $foo através de $bar.
$bar "My name is $bar";  // Altera $bar...
echo $bar;
echo 
$foo;                 // $foo é alterada também.
?>

Uma observação importante a se fazer: somente variáveis nomeadas podem ser atribuídas por referência.

<?php
$foo 
25;
$bar = &$foo;      // Esta atribuição é válida.
$bar = &(24 7);  // Inválido; referencia uma expressão sem nome.

function test()
{
   return 
25;
}

$bar = &test();    // Inválido.
?>

Não é necessário variáveis inicializadas no PHP, contudo é uma ótima prática. Variáveis não inicializadas tem um valor padrão do tipo dela - FALSE, zero, string vazia ou um array vazio.

Example#1 Valores padrões de variáveis não inicializadas

<?php
echo ($unset_bool "true" "false"); // false
$unset_int += 25// 0 + 25 => 25
echo $unset_string "abc"// "" . "abc" => "abc"
$unset_array[3] = "def"// array() + array(3 => "def") => array(3 => "def")
?>

Confiar no valor padrão de uma variável não inicializada é problemático no caso de incluir um arquivo em outro que usa variável com mesmo nome. E também um principal risco de segurança com register_globals estando on. Erros E_NOTICE são emitidos no caso de ter variáveis não inicializadas, contudo não no caso de adicionar elementos para um array não inicializado. O construtor da linguagem isset() pode ser usado para detectar se uma variável não foi inicializada.