Podręcznik PHP
Poprzedni | Rozdział 12. Zmienne | Następny

# 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 ją 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 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.

Poprzedni | Spis treści | Następny
Zasięg zmiennych | Początek rozdziału | Zmienne spoza PHP