Відмінності між версіями «Пріоритети операторів PHP»

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук
Рядок 6: Рядок 6:
 
<table border="0" cellpadding="3" cellspacing="1" bgcolor="#000066">
 
<table border="0" cellpadding="3" cellspacing="1" bgcolor="#000066">
 
   <tr bgcolor="#FFFFFF" class="mtx4">
 
   <tr bgcolor="#FFFFFF" class="mtx4">
     <td><div align="center"><strong>Приоритет</strong></div></td>
+
     <td><div align="center"><strong>Пріоритет</strong></div></td>
 
     <td><div align="center"><strong>Оператор</strong></div></td>
 
     <td><div align="center"><strong>Оператор</strong></div></td>
     <td><div align="center"><strong>Порядок выполнения </strong></div></td>
+
     <td><div align="center"><strong>Виконання</strong></div></td>
 
   </tr>
 
   </tr>
 
   <tr bgcolor="#FFFFFF" class="mtx4">
 
   <tr bgcolor="#FFFFFF" class="mtx4">

Версія за 14:09, 19 квітня 2010

Пріоритет операторів визначає, наскільки "тісно" пов'язані між собою два вирази. Наприклад, вираз 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 
?>

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