Присваивание
Вы уже знаете, как присвоить значение переменной в сценарии РНР. Тем не менее, некоторые тонкости, связанные с присваиванием, стоит выделить особо. Вероятно, вам хорошо знаком механизм присваивания по значению, при котором именованной переменной присваивается конкретное значение — например, целое число 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 (и всех остальных переменных, ссылающихся на эту же область памяти).
Дата добавления: 2015-09-14; просмотров: 677;