Capítulo 8 . Variáveis

Índice
Introdução
Variáveis Predefinidas
Escopo de variáveis
Variáveis variáveis
Variáveis externas ao PHP

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 nossos propósitos , as letras a-z , A-Z e os caracteres ASCII de 127 a 255 ( 0x7f-0xff ) .

 
?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

 
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 .

O PHP 4 oferece um outro meio de atribuir valores a variáveis : a 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 . Isto significa também que nenhuma cópia é realizada , de modo que a atribuição ocorre mais rapidamente . Entretanto , qualquer aumento de velocidade será realmente notado em *loops* complexos ou em atribuições de grandes arrays ou objetos .

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

 
.

 
?