Променливи
PHP Manual

Променливи променливи

Понякога е удобно да можем да имаме променливи имена на променливи. Това означава - име на променлива, което може да бъде установявано и използвано динамично. Обикновената променлива се установява посредством израз като:

<?php
$a 
'hello';
?>

Променливата променлива взима стойността на променлива и разглежда тази стойност като име на променлива. В горния пример hello може да бъде използвано за име на променлива с помощта на два доларови знака. Т.е.

<?php
$$a 'world';
?>

В този момент са дефинирани и съхранени две променливи в символното дърво на PHP: $a със съдържание "hello" и $hello със съдържание "world". Следователно, следният израз:

<?php
echo "$a ${$a}";
?>

ще изведе абсолютно същото като:

<?php
echo "$a $hello";
?>

т.е. и двата извеждат: hello world.

За да използвате променливи променливи с масиви, трябва да разрешите една двусмисленост. А именно, когато напишете $$a[1], синтактичният анализатор трябва да знае дали сте искали да използвате $a[1] като променлива, или сте искали $$a като променлива и [1] като индекс от тази променлива. Синтаксисът за разрешаване на тази двусмисленост е: ${$a[1]} за първия случай и ${$a}[1] за втория.

Предупреждение

Моля забележете, че променливите променливи не могат да бъдат използвани със Свръхглобалните масиви на PHP вътре във функции или методи на клас. Освен това променливата $this е специална променлива, която не може да бъде достъпвана динамично.


Променливи
PHP Manual