Вы
уже знаете, как присвоить значение переменной в сценарии РНР. Тем не менее, некоторые
тонкости, связанные с присваиванием, стоит выделить особо. Вероятно, вам хорошо
знаком механизм присваивания по значению, при котором именованной переменной присваивается
конкретное значение - например, целое число 1 или строка "ciao". Однако
существует и второй механизм - присваивание по ссылке, также открывающее перед
программистами немало полезных возможностей. В следующих разделах оба механизма
рассматриваются более подробно. Присваивание по значению Это самый
распространенный способ присваивания, при котором значение просто заносится в
область памяти, представленную именем переменной. Примеры присваивания по значению: $vehicle
= "car"; $amount =10.23; В результате выполнения этих
двух команд по адресу памяти, представленному именем $vehicle, сохраняется строка
"car", а по адресу, представленному именем $amount, - значение 10.23. Присваивание
по значению также может выполняться в результате выполнения команды return в функциях: function
simple () { return 5; } $return_value = simple(); Функция
simple( ) всего лишь возвращает значение 5, которое присваивается некоторой переменной.
В данном примере значение 5 будет присвоено переменной $return_value. Присваивание
по ссылке Другой способ заключается в присваивании переменной ссылки на
область памяти, занимаемую другой переменной. Вместо конкретного значения переменная-приемник
связывается с указателем (или ссылкой) на область памяти, поэтому фактическое
копирование не выполняется. Чтобы присвоить значение по ссылке, укажите
перед именем переменной-источника символ & (амперсанд): $dessert = "cake"; $dessert2
= $Sdessert; $dessert2 = "cookies"; print "$dessert2
<br>"; // Выводится строка cookies print Sdessert; // Снова выводится
строка cookies Как видно из приведенного фрагмента, после связывания переменной
$dessert2 со ссылкой на область памяти, занимаемую переменной $dessert, любые
изменения $dessert2 приводят к автоматической модификации $dessert (и всех остальных
переменных, ссылающихся на эту же область памяти). |