Пріоритети операторів PHP

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук

Пріоритет операторів визначає, наскільки "тісно" пов'язані між собою два вирази. Наприклад, вираз 1 + 5 * 3 обчислюється як 16, а не 18, оскільки операція множення ("*") має більш високий пріоритет, ніж операція додавання ("+"). У випадку, якщо оператори мають однаковий пріоритет, вони будуть виконуватися зліва направо. Круглі дужки можуть використовуватися для примусового вказівки необхідного порядку виконання операторів. Наприклад, вираз (1 + 5) * 3 обчислюється як 18.

У наступній таблиці наведено список операторів, відсортований за спаданням їхніх пріоритетів. Оператори, розміщені в одному рядку мають однаковий пріоритет і порядок їх виконання опроделяется виходячи з їх асоціативності.

Оператори з більш високим рівнем пріоритету виконуються в першу чергу:

Приоритет
Оператор
Порядок выполнения
13
(постфікс)++ (постфікс)--
зліва направо
12
++(префікс) --(префікс)
зліва направо
11
* / %
зліва направо
10
+ -
зліва направо
9
<< >>
зліва на право
8
< <= > >=
зліва на право
7
== !=
зліва на право
6
&
зліва на право
5
^
зліва на право
4
|
зліва на право
3
&&
зліва на право
2
||
зліва на право
1
= += -= *= /= %= >>= <<== &= ^= |=
зліва на право

Приклад порядку виконання операторів (асоціативність)::

<?php 
   $a 
5// (3 * 3) % 5 = 4 
  
$a true true 2// (true ? 0 : true) ? 1 : 2 = 2 
    
  
$a 1
  
$b 2
  
$a $b += 3// $a = ($b += 3) -> $a = 5, $b = 5 
?>

У будь-якому випадку, якщо ви сумніваєтеся, чи боїтеся помилитися, використовуйте круглі дужки. Це також дозволить зробити ваш код більш читабельним.