#2. 9 php Операторы сравнения

Операторы сравнения — множество логических операторов, предназначенных для совместного использования с оператором if. В предыдущем разделе использовался оператор «больше» (>) для проверки значения переменной $minutes:

$minutes = 4;
If ($minutes > 3)
{
    echo "Ваше время истекло!<BR>";
    echo "Пожалуйста, положите трубку.";
    $hang_up_now = TRUE;
}    

Все имеющиеся в РНР операторы сравнения приведены в таблице

Таблица 1. Операторы сравнения

Оператор Операция Пример Результат
== Равенство $а == $b TRUE, если равно $b.
=== Идентичность $а === $b TRUE, если равно $b, и они одного и того же типа.
!= Неравенство $а != $b TRUE, если не равно $b.
<> Неравенство $а <> $b TRUE, если не равно $b.
!== Неидентичность $а !== $b TRUE, если не равно $b, или они не одного и того же типа.
< Меньше $а < $b TRUE, если меньше $b.
> Больше $а > $b TRUE, если больше $b.
<= Меньше или равно $а <= $b TRUE, если меньше или равно $b.
>= Больше или равно $а >= $b TRUE, если больше или равно $b.
<=> Spaceship $a <=> $b Число типа int меньше, больше или равное нулю, когда $a соответственно меньше, больше или равно $b.

Например, если требуется проверить, что значение переменной точно равно 25 градусов, следует использовать оператор равенства (==):

$temperature = 25;
if ($temperature == 25)
   echo "Неплохой день";

Замечание

Следует обратить внимание, что оператор сравнения записывается как два знака равенства (==) в отличие от оператора присваивания (=).Если оператор if в сочетании с оператором сравнения не дает ожидаемых результатов, следует удостовериться в том, что используется именно оператор сравнения, а не оператор присваивания.

Ниже приведен пример использования оператора неравенства (!=), который возвращает TRUE, если два значения не равны.

$temperature = 25;
if ($temperature != 25)
   echo "Температура не равна 25 градусов";

Особое внимание следует уделить сравнению вещественных чисел. Вещественные числа хранятся в двоичном, а не десятичном представлении. Это означает, что число, которое выглядит как $8$, может в действительности храниться как $7,99999999$, и в результате проверка на точное равенство даст неверный результат. Поэтому не имеет смысла выполнять проверку вещественных чисел на равенство или неравенство. Для сравнения вещественных чисел рекомендуется ограничиться определенной точностью. Например, если требуется проверить равенство определенной переменной числу $\pi$ (в РНР предусмотрена отдельная функция pi, возвращающая значение числа $\pi$ с высокой точностью), для этой цели можно применить следующий оператор:

$value = 3.1415926535;
if (abs ($value - pi ()) < 0.0000001)
{
  echo ("Это число 'пи'");
}

В примере использована математическая функция abs).