Еще в ноябре 2005 года на встрече в Париже разработчики обсудили новые возможности следующей, шестой, версии PHP. Интересует ли Вас, какой будет эта версия? Примите участие в опросе, который проводится на сайте рассылки.
[опрос на английском языке: PHP 6: Are you interesting in? (PHP 6: Вы зантересованы?) - YES (ДА) - NO (НЕТ)]
PHP 5 для начинающих
Присвоение значений
Аннотация
Первоначальное и повторное присвоение значения переменной; значение переменной по умолчанию. Присвоение по значению и по ссылке.
Как уже было сказано, присвоение значений переменным производится при помощи знака равенства (подобно тому, как это делается в школьных алгебраических уравнениях).
$x = 1;
Переменной с единожды присвоенным значением может быть присвоено новое значение.
$x = 99;
Текущим значением переменной является то, которое было присвоено ей последним.
print $x;
99
Закономерным является возникновение вопроса: что произойдет при обращении к переменной, которой значение еще не присвоено?
print $y;
Notice: Undefined variable: y
var_dump($y);
Notice: Undefined variable: y
NULL
print (int) $y;
Notice: Undefined variable: y
0
Как видим, в таком случае выдается замечание о неопределенной переменной (undefined variable). По умолчанию такая переменная принадлежит к нулевому типу. В зависимости от ситуации такая переменная может быть автоматически преобразована к другим типам; например, к пустой строке (при выводе на печать с помощью echo или print) или к нулю (в числовом контексте). Можно также
прибегнуть к явному приведению типов.
Переменной можно присвоить также результат вычисления определенного выражения (выражения мы рассмотрим подробно позже) или значение другой переменной.
<?php
$x = 2 + 2;
$y = $x;
print $y;
?>
4
Присвоение переменной значения другой переменной рассмотрим подробнее. Показанный выше способ присвоения называется присвоением по значению (by value). Присваиваемое значение при этом копируется в новую область памяти и не связано с оригинальным значением. Проще говоря, при изменении значения исходной переменной ее копия не изменяется.
Другой способ присвоения - по ссылке (by reference) - предполагает последующую связанность оригинала и копии (при изменении значения одной из переменных изменится значение и второй переменной). При таком присвоении копирования как такового не происходит; новая переменная, по сути, содержит ссылку на исходную переменную (точнее, на ту обрасть памяти, которую она занимает). Для того,
чтобы присвоение произошло по ссылке, а не по значению, переменную предваряют знаком амперсенда (&).