Оператори присвоєння

Базовий оператор надання позначається символом «=». Здається, що це оператор рівно. Це не так. Оператор присвоєння означає, що лівий операнд набуває значення правого виразу (тобто лівому операнду «присвоєно значення»).

Результатом виконання оператора присвоювання буде саме значення. Тобто результат виконання виразу$a = 3» Дорівнюватиме 3. Це дозволяє робити трюки на кшталт:

Loading...

Крім базового оператора присвоєння існують «комбіновані оператори» для всіх бінарних арифметичних операцій, операцій об'єднання масивів та рядкових операцій, які дають присвоїти значення у виразі, а потім встановити його значення в результат цього виразу. Наприклад:

Loading...

Зверніть увагу, що присвоєння копіює оригінальну змінну в нову (присвоєння за значенням), тому наступні зміни однієї змінних ніяк не позначаться на іншій. Це також може бути доречним при копіюванні чогось подібного до великого масиву в довгому циклі.

Виняток із звичайного для PHP способу присвоювання за значенням - об'єкти (object), які присвоюються за посиланням. Примусово скопіювати об'єкти за значенням можна за допомогою ключового слова clone

Привласнення за посиланням

Присвоєння посилання також підтримується, для цього можна використовувати синтаксис $var = &$othervar;. Привласнення за посиланням означає, що обидві змінні вказують на ті самі дані і нічого нікуди не копіюється.

Приклад #1 Assigning by reference

Loading...

Операторnew автоматично повертає посилання, тому надання результату операції new за посиланням викликає помилку.

Loading...

Результат виконання наведеного прикладу:

Parse error: syntax error, unexpected 'new' (T_NEW) in …

Детально про посилання розказано у розділі «Пояснення посилань».

Оператори арифметичного присвоєння

ПрикладЭквивалентОперация
$a += $b$a = $a + $bДодавання
$a -= $b$a = $a - $bВіднімання
$a *= $b$a = $a * $bмноження
$a /= $b$a = $a / $bПоділ
$a %= $b$a = $a % $bМодуль
$a **= $b$a = $a ** $bЗведення в ступінь

Оператори побитового присвоєння

ПрикладЭквивалентОперация
$a &= $b$a = $a & $bПобітове І
$a= $b$a = $a
$a ^= $b$a = $a ^ $bПобітове що виключає АБО (Xor)
$a <<= $b$a = $a << $bПобітове зрушення вліво
$a >>= $b$a = $a >> $bПобітове зрушення вправо

Інші оператори присвоєння

ПрикладЭквивалентОперация
$a .= $b$a = $a . $bКонкатенація рядків
$a ??= $b$a = $a ?? $bОб'єднання з Null

Дивіться також