Оператори присвоєння PHP
Базовый оператор присвоения обозначается как =. На первый взгляд может показаться, что это оператор "равно". На самом деле это не так. В действительности, оператор присвоения означает, что левый операнд получает значение правого выражения, (т.е. устанавливается результирующим значением).
Результатом выполнения оператора присвоения является само присвоенное значение. Таким образом, результат выполнения $a = 3 будет равен 3. Это позволяет использовать конструкции вида:
<?php
$a = ($b = 4) + 5; // результат: $a установлена значением 9, переменной $b присвоено 4.
?>
В дополнение к базовому оператору присвоения имеются "комбинированные операторы" для всех бинарных арифметических и строковых операций, которые позволяют использовать некоторое значение в выражении, а затем установить его как результат данного выражения. Например:
<?php
$a = 3;
$a += 5; // устанавливает $a значением 8, аналогично записи: $a = $a + 5;
$b = "Hello ";
$b .= "There!"; // устанавливает $b строкой "Hello There!", как и $b = $b . "There!";
?>
Обратите внимание, что присвоение копирует оригинальную переменную в новую (присвоение по значению), таким образом все последующие изменения одной из переменных на другой никак не отражаются. Начиная с PHP 4, также поддерживается присваивание по ссылке, используя синтаксис $var = &$othervar;
'Присвоение по ссылке' означает, что обе переменные указывают на одни и те же данные и никакого копирования не происходит.
Приклад: присвоювання "="
$a = ($b = 4) +5;
($a буде дорівнює 9,
$b буде дорівнює 4)
Змінній ліворуч від оператора буде присвоєне значення,
отримане в результаті виконання яких-небудь операцій або змінної/константи з правої сторони.
Приклад: скорочення "+="
$a += 5;
(еквівалентно $a = $a + 5;)
Скорочення. Додає до змінної число і потім привласнює їй отримане значення.
Приклад: операція конкотенації та присвоення ".="
$b = "Привіт "; $b .= "усім";
(еквівалентно $b = $b . "усім";)
У результаті: $b="Привіт усім"
Скорочено позначає комбінацію операцій конкатенації і присвоєння
(спочатку додається рядок,
потім отриманий рядок записується в змінну)