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.

Hosting by: Hurra Communications Sp. z o.o.
Generated: 2007-01-26 18:02:57