Главная > Программирование > РНР: настольная книга программиста
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

9.4. Переменные переменных

Иногда при программировании возникает необходимость использовать значение переменной в качестве имени. Это явление называется переменные переменных. В некоторых случаях это является очень удобным способом реализации поставленной задачи. Приведем пример:

$а = 'best';

Переменной $а задается значение best. В РНР существует такая возможность, что значение самой переменной может использоваться с именем новой переменной, которой в последующем будут присвоены следующие значения. Это очень удобно,

когда прежде всего необходимо сохранить место, т. е. размер программы. Но нужно быть предельно внимательным. Для примера рассмотрим реализацию следующей программы:

<?php

$а = "hello";

$$а = "world";

echo "$а $hello";

?>

Первая строка присваивает значение переменной $а = "hello";. Во второй строке $$a="world";, задав таким образом переменную $а, мы тем самым создали новую переменную имени hello, и не только создали, но и присвоили. Теперь в любом коде программы вы без какой-либо проблемы сможете использовать значение переменной $hello = "world". Чтобы убедиться в этом, в самом конце программы приведена функция echo "$а $hello";, которая позволит получить результат в виде «hello world».


ВНИМАНИЕ

При использовании такого способа существует возможность определения переменных большого количества (три и более). Но это приводит только к путанице в программе и трудностям в понимании кода. Старайтесь не делать это более, чем для двух разных переменных.


Рассмотрим еще один пример, похожий на предыдущий, но отличающийся реализацией переменных:

<?php

$а = "РНР";

$$а = "is";

$$$а = "GOOD!";

echo "$а ${$а} ${${$а} }";

echo "$а $PHP $is";

?>

В данном примере обратите внимание на строку $$$а = "GOOD! "; . Эта строка объясняет то, что было сказано ранее, т. е. количество определяемых таким образом переменных может быть очень большое (в данном примере — три). Также посмотрите, как они определяются — перед переменной стоит три знака доллара. Строка echo "$а $$а $ {$ {$а} }";. позволяет вывести фразу «РНР is GOOD!». Функция echo "$а $РНР $ is " ; выводит этот же результат. Две функции были употреблены для того, чтобы вы смогли увидеть разнообразные способы работы и обращения к таким переменным.


ВНИМАНИЕ

Если само имя переменной вы записываете как $$а[1], то синтаксический анализатор должен знать, желаете ли вы использовать $а[1] в качестве переменной или же вам нужна переменная $$а и индекс [1] от этой переменной. Синтаксис при решении этой неоднозначности будет следующий: ${$а[1]} для первого случая и ${$а}[1] для второго.


<< Предыдущий параграф Следующий параграф >>
Оглавление