Оператори присвоєння
Базовий оператор надання позначається символом «=». Здається, що це оператор рівно. Це не так. Оператор присвоєння означає, що лівий операнд набуває значення правого виразу (тобто лівому операнду «присвоєно значення»).
Результатом виконання оператора присвоювання буде саме значення. Тобто результат виконання виразу$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 |