Podręcznik PHP
Poprzedni | Rozdział 7. 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