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; } ?> |