Иногда бывает удобно давать переменным изменяемые имена. Такие имена могут изменяться динамически. Обычная переменая устанавливается так: $a = "hello";
Изменяемая переменная берет некое значение и обрабатывает его как имя переменной. В приведенном выше примере значение hello может быть использовано как имя переменной, посредством применения двух записанных подряд знаков доллара, т.е.: $$a = "world";
С этой точки зрения, две переменных определены и сохранены в символьном дереве PHP: $a с содержимым "hello" и $hello с содержимым "world". Так, инструкция: echo "$a ${$a}";
осуществляет то же самое, что и инструкция: echo "$a $hello";
а именно, обе они выводят: hello world.
Чтобы использовать изменяемые переменные с
массивами, необходимо решить проблему
неоднозначности. Это означает, что если вы пишете
$$a[1], то синтаксическому анализатору необходимо
знать, имеете ли вы в виду использовать $a[1] как
переменую, или вы предполагаете $$a как
переменную а [1] как индекс этой переменной.
Синтаксис для разрешения подобной
неоднозначности такой: ${$a[1]} для первого случая и
${$a}[1] для второго.
Содержание раздела