1

Topic: Операторы сравнения в PHP

Операторы сравнения, как это видно из их названия, позволяют сравнивать между собой два значения.

Это в своем роде уникальные операции, потому что независимо от типов своих аргументов они всегда возвращают одно из двух: false или true. Операции сравнения позволяют сравнивать два значения между собой и, если условие выполнено, возвращают true, а если нет — false.

В PHP разрешается сравнивать только скалярные переменные. Массивы и объекты в PHP сравнивать нельзя. Их даже нельзя сравнивать на равенство (при помощи оператора ==), но при выполнении такой операции PHP не выдает предупреждения. Так что удивившись как-то раз, почему два совершенно разных массива при сравнении их с помощью == оказываются вдруг одинаковыми, вспомните, что перед сравнением оба операнда преобразуются в слово array, которое потом и сравнивается.

Пример  Название  Результат
$a == $b  Равно  TRUE если $a равно $b.
$a === $b  Тождественно равно  TRUE если $a равно $b и имеет тот же тип. (Добавлено в PHP 4)
$a != $b  Не равно  TRUE если $a не равно $b.
$a <> $b  Не равно  TRUE если $a не равно $b.
$a !== $b  Тождественно не равно  TRUE если $a не равно $b или в случае, если они разных типов (Добавлено в PHP 4)
$a < $b  Меньше  TRUE если $a строго меньше $b.
$a > $b  Больше  TRUE если $a строго больше $b.
$a <= $b  Меньше или равно  TRUE если $a is меньше или равно $b.
$a >= $b  Больше или равно  TRUE если $a больше или равно $b.

2

Re: Операторы сравнения в PHP

В случае, если вы сравниваете целое со строкой, строка будет преобразована к числу. В случае, если вы сравниваете две числовые строки, они сравниваются как целые числа.

<?php 
   var_dump(0 == "a"); // 0 == 0 -> true 
   var_dump("1" == "01"); // 1 == 1 -> true 
     
   switch ("a") { 
   case 0: 
       echo "0"; 
       break; 
   case "a": // Эта ветка никогда не будет достигнута, так как "a" уже сопоставленно с 0 
       echo "a"; 
       break; 
   } 
?>

3

Re: Операторы сравнения в PHP

Еще одним условным оператором является тернарный оператор "?":

<?php
// Пример использования тернарного оператора
$action = (empty($_POST['action'])) ? 'default' : $_POST['action'];

// Приведенный выше код аналогичен следующему блоку с использованием if/else
if (empty($_POST['action'])) {
     $action = 'default';
} else {
     $action = $_POST['action'];
}
?>

Выражение (expr1) ? (expr2) : (expr3) интерпретируется как expr2, если expr1 вычисляется в TRUE, или как expr3 если expr1 вычисляется в FALSE.