Отправляет email-рассылки с помощью сервиса Sendsay

PHP 5 для начинающих

  Все выпуски  

ПЕРЕМЕННЫЕ: Присвоение значений


Вниманию читателей!

Отдельные выпуски рассылки в той или иной мере взаимосвязаны. С предыдущими выпусками Вы можете ознакомиться:

  1. в архиве рассылки (оригиналы выпусков);
  2. на сайте рассылки (исправленные и дополненные версии).

# # #

Вы также можете подписаться на рассылку "PHP 5: Новые возможности".

PHP 6 уже в разработке!

Еще в ноябре 2005 года на встрече в Париже разработчики обсудили новые возможности следующей, шестой, версии PHP. Интересует ли Вас, какой будет эта версия? Примите участие в опросе, который проводится на сайте рассылки.

http://pterodactyl.l2p.net/e107/

[опрос на английском языке: 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). Присваиваемое значение при этом копируется в новую область памяти и не связано с оригинальным значением. Проще говоря, при изменении значения исходной переменной ее копия не изменяется.

<?php

$x = 'a';
$y = $x;
$x = 'b';
echo $x, $y;

?>
        
ba

Другой способ присвоения - по ссылке (by reference) - предполагает последующую связанность оригинала и копии (при изменении значения одной из переменных изменится значение и второй переменной). При таком присвоении копирования как такового не происходит; новая переменная, по сути, содержит ссылку на исходную переменную (точнее, на ту обрасть памяти, которую она занимает). Для того, чтобы присвоение произошло по ссылке, а не по значению, переменную предваряют знаком амперсенда (&).

<?php

$x = 'a';
$y = &$x;
$x = 'b';
echo $x, $y;

?>
        
bb

Замечание

По ссылке может быть присвоено только значение именованной переменной, но не обычное выражение.

$x = &3.14;
Parse error:  parse error, unexpected T_DNUMBER, expecting T_NEW or T_STRING or T_VARIABLE or '$'

Created with DocBook Created with Libxslt


В избранное