Данный урок PHP рассматривает работу с переменными: присваивание имен и способы присвоения значений переменным.

Переменная в PHP обозначается знаком доллара, за которым следует ее имя. Например:

$my_var
$My_var
$_var
$x2

Имя переменной чувствительно к регистру, т.е. переменные $my_var и $My_var различны.

Имена переменных соответствуют тем же правилам, что и остальные наименования в PHP. Правильное имя переменной должно начинаться с латинской буквы или символа подчеркивания с последующими в любом количестве буквами, цифрами или символами подчеркивания:

a-z, A-Z, 0-9, или _

Когда в PHP присваиваете выражение переменной, все значения оригинального выражения копируются в эту переменную. Это означает, к примеру, что после присвоения одной переменной значения другой, изменение одной из них не влияет на значение другой. Значение переменной присваивается с помощью оператора присваивания, который обозначается символом равенства (=).

Пример:

<?php
// Присвоим $first значение ' Text 1 '
$first = ' Text 1 ';

// Присвоим $second значение переменной $first
$second = $first;

// Изменяем значение $first на ' Text 2 '
$first = ' Text 2 ';

// выводим значение $first
echo "Переменная с именем first равна $first <br>";

// выводим значение $second
echo "Переменная с именем second равна $second";
?>

Результат работы этого скрипта будет следующим:

Переменная с именем first равна Text 2 
Переменная с именем second равна Text 1

PHP предлагает еще один способ присвоения значений переменным: присвоение по ссылке. Для того чтобы присвоить значение переменной по ссылке, это значение должно иметь имя, т.е. оно должно быть представлено какой-либо переменной. Чтобы указать, что значение одной переменной присваивается другой переменной по ссылке, нужно перед именем первой переменной поставить знак амперсанд &.

Рассмотрим тот же пример, что и выше, только будем присваивать значение переменной first переменной second по ссылке:

<?php
// Присваиваем $first значение ' Text '
$first = ' Text ';

/* Делаем ссылку на $first через $second.
Теперь значения этих переменных
будут всегда совпадать */
$second = &$first;

// Изменим значение $first на ' New text '
$first = ' New text ';

// выведем значения переменных
echo "Переменная с именем first равна $first <br>";
echo "Переменная с именем second равна $second";
?>

Запуситите этот скрипт и проверьте результат. Вместе со значением переменной $first должно измениться и значение переменной $second.

Контрольные вопросы и задания

  1. Как переменная обозначается в PHP?
  2. Каким символом обозначается оператор присваивания?
  3. Чем отличается присваивание по ссылке от обычного присваивания?