Понякога е удобно да можем да имаме променливи имена на променливи. Това означава - име на променлива, което може да бъде установявано и използвано динамично. Обикновената променлива се установява посредством израз като:
<?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 е специална променлива, която не може да бъде достъпвана динамично.