Материал предоставлен https://it.rfei.ru

Взаимосвязанность операторов

Обработка выражений рассматривалась нами слева направо, за исключением тех случаев, в которых вступала в силу приоритетность операторов. Но некоторые операторы могут также потребовать обработки справа налево. Направление обработки обусловливается взаимосвязанностью операторов.

Взаимосвязанность приобретает большое значение в тех случаях, когда вы явным образом не меняете приоритетности. В таблице перечислены все операторы, имеющие взаимосвязанность справа налево.

Операторы, имеющие взаимосвязанность справа налево

Оператор Описание
NEW Создание нового объекта
! Логическое НЕ
~ Поразрядное НЕ
++ -- Инкремент и декремент
+ - Унарный плюс и изменение знака числа
(int) Преобразование в целое число
(double) Преобразование в число с плавающей точкой
(string) Преобразование в строковое значение
(array) Преобразование в массив
(object) Преобразование в объект
@ Подавление сообщения об ошибке
? : Условный оператор
= Присваивание

Рассмотрим оператор присваивания, показанный в примере, где всем трем переменным присваивается значение 0.

Пример. Оператор множественного присваивания

<?php
$level = $score = $time = 0;
?>

Такое множественное присваивание возможно только в том случае, если сначала вычисляется самая правая часть выражения, а затем процесс продолжается справа налево.

Новичкам следует научиться в процессе работы с РНР избегать потенциальных просчетов в вопросах взаимосвязанности операторов и всегда принудительно задавать порядок вычислений, заключая подвыражения в круглые скобки. Это поможет и другим программистам, вынужденным обслуживать ваш код, понять, что в нем происходит.

Приоритетность операторовОператоры отношения