2.4. Оператори порівняння в PHP

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

Це у своєму роді унікальні операції, тому що незалежно від типів своїх аргументів вони завжди повертають одне з двох: false або true. Операції порівняння дозволяють порівнювати два значення між собою і, якщо умова виконана, повертають true, а якщо ні - false.

У PHP дозволяється порівнювати тільки скалярні змінні. Масиви та об'єкти в PHP порівнювати не можна. Їх навіть не можна порівнювати на рівність (за допомогою оператора ==), але при виконанні такої операції PHP не видає попередження. Так що здивувавшись якось раз, чому два абсолютно різних масиву при порівнянні їх з допомогою == виявляються раптом однаковими, згадайте, що перед порівнянням обидва операнда перетворюються в слово array, яке потім і порівнюється.

Приклад Назва Результат
$a == $b Дорівнює TRUE якщо $a дорівнює $b.
$a === $b Повністю дорівнює TRUE якщо $a дорівнює $b і має такий же тип
$a != $b Не дорівнює TRUE якщо $a не дорівнює $b.
$a <> $b Не дорівнює TRUE якщо $a не дорівнює $b.
$a !== $b Повністю не дорівнює TRUE якщо $a не дорівнює $b і мають різні типи
$a < $b Менше TRUE якщо $a строго менше $b.
$a > $b Більше TRUE якщо $a строго більше $b.
$a <= $b Менше або дорівнює TRUE якщо $a менше або дорівнює $b.
$a >= $b Більше або дорівнює TRUE якщо $a більше або дорівнює $b.

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

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php 
   var_dump(0 == "a"); // 0 == 0 -> true 
   var_dump("1" == "01"); // 1 == 1 -> true 
     
   switch ("a") { 
   case 0: 
       echo "0"; 
       break; 
   case "a": // ця частина коду ніколи не виконуватиметься, бо а=0
       echo "a"; 
       break; 
   } 
?>