Zmienne zmienne

W niektórych przypadkach jest wygodne , by móc użyć zmiennej o zmiennej nazwie . To znaczy zmiennej , której nazwa może być zmieniana dynamicznie . Zwykła zmienna jest ustawiana wyrażeniem jak poniżej :

 
$a

 
=

 
"

 
witaj"

 
;



Zmienna zmienna pobiera wartość jednej zmiennej i traktuje jako nazwę zmiennej . W powyższym przykładzie , witaj może stać się nazwą zmiennej , przy użyciu dwóch znaków dolara , tzn .

 
$$a

 
=

 
"

 
świecie"

 
;



W tym momencie dwie zmienne zostały zdefiniowane i umieszczone w drzewie symbolicznym PHP : $a zawierająca " witaj " i $witaj W tym momencie dwie zmienne zostały zdefiniowane i umieszczone w drzewie symbolicznym PHP : $a zawierająca "witaj " i $witaj zawierająca "świecie " . Zatem poniższy zapis :

 
echo

 
"

 
$a

 
${$a}"

 
;



znaczy to samo , co :

 
echo

 
"

 
$a

 
$witaj"

 
;



tzn . obydwa wyświetlą : witaj świecie .

Aby używać zmiennych zmiennych jako tablic , trzeba rozwiązać pewną niejasność . Mianowicie , jeśli napiszesz $$a[ 1 ] , parser musi wiedzieć , czy chesz użyć $a[1 ] jako nazwy zmiennej , czy $$a jako nazwy tablicy , której rekord [1 ] cię interesuje . W tym przypadku należy zastosować odrębną składnię : ${ $a[1] } dla pierwszego przypadku a ${$a}[1 ] dla drugiego .

Proszę pamiętać , że zmienne zmienne nie mogą być używane z nowymi superglobalami PHP . Oznacza to , że nie będą działać wyrażenia typu ${ $_GET } . Jeśli szukasz sposobu na obsługę osiągalności superglobali i starych tablic $HTTP_*_VARS , spróbuj użyć referencji .