PHP скрипты

MySQL

Apache

phpMyADmin

5.11: Приоритетность и ассоциативность в PHP

Главная Страница » Книги по PHP » Самоучитель PHP 5 для чайников с примерами » Приоритетность и ассоциативность

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

На самом деле с этим понятием приоритетности мы сталкивались еще в школе на уроках математики. Например, нужно посчитать значение выражения 1+2*3. Если не обращать на порядок вычисления внимания, то мы сложили бы сначала 1+2=3 и умножили результат на 3. В итоге получили бы 9. Но со школы известно, что сначала следует выполнить операцию умножения, а уж потом сложения. И правильный ответ будет 7. Именно в порядке вычисления различных операций заключается смысл приоритетности.

(!) Приоритетность - свойство, определяющее порядок вычисления различных операций.

Свойство ассоциативности используется в тех случаях, когда требуется выяснить порядок вычисления операций при одинаковых приоритетах (листинг 5.7).

Листинг 5.7. Порядок вычисления.

‹?php
$num = 27/9/3; // эквивалентно (27/9)/3
echo $num; // выведет 1
?›

В данном случае выведется число 1, так как выполнение операторов деления начинается слева. В этом случае говорят, что оператор ассоциативен слева.

(!) Ассоциативность - свойство, определяющее порядок вычисления операций при одинаковых приоритетах.

В таблице 5.1 отражены приоритеты некоторых операторов PHP, а также их ассоциативность.

Таблица 5.5. Приоритеты оператов РНР.

Операторы Ассоциативность
++ - Правая
/ * % Левая
+ - . Левая
<< >> Левая
< <= => > Не ассоциативны
== === ! = Не ассоциативны
& Левая
^ Левая
| Левая
&& Левая
|| Левая
= += -= /= *= %= .= Правая
and Левая
xor Левая
or Левая

Поделиться с друзьями