Больше либо равно php

PHP Comparison Operators

Summary: in this tutorial, you will learn how to use PHP comparison operators to compare two values.

Introduction to PHP comparison operators

A comparison operator allows you to compare two values and returns true if the comparison is truthful and false otherwise.

The following table illustrates the comparison operators in PHP:

Operator Name Description
== Equal to Return true if both operands are equal; otherwise, it returns false .
!=, <> Not equal to Return true if both operands are equal; otherwise, it returns false .
=== Identical to Return true if both operands have the same data type and equal; otherwise, it returns false .
!== Not identical to Return true if both operands are not equal or not have the same data type; otherwise, it returns false .
> Greater than Return true if the operand on the left is greater than the operand on the right; otherwise, it returns false .
>= Greater than or equal to Return true if the operand on the left is greater than or equal to the operand on the right; otherwise, it returns false .
Less than Return true if the operand on the left is less than the operand on the right; otherwise, it returns false .
Less than or equal to Return true if the operand on the left is less than or equal to the operand on the right; otherwise, it returns false .

Equality Operator (==)

The equality returns true if both values are equal; otherwise, it returns false . The following example returns true because 10 is equal 10:

 $x = 10; $y = 10; var_dump($x == $y); // bool(true)Code language: HTML, XML (xml)

The following example returns false because 10 is not equal 20 :

  $x = 20; $y = 10; var_dump($x == $y); // bool(false)Code language: HTML, XML (xml)

The following example compares the number 20 with a string ’20’ , it also returns true .

 $x = '20'; $y = 20; var_dump($x == $y); // bool(true)Code language: HTML, XML (xml)

If you want to compare two values with the consideration of type, you can use the identical operator ( === ).

Not equal to operator (!=, <>)

The not equal to (!=, <>) operator returns true if the lefthand value is not equal to the righthand value; otherwise, it returns false . For example:

 $x = 20; $y = 10; var_dump($x != $y); // bool(true)Code language: HTML, XML (xml)

Identical operator (===)

The identical operator returns true if both values are equal and have the same type; otherwise returns false .

The following example uses the identical operator to compare a string and a number. It returns false because these values have different types:

 $x = '20'; $y = 20; var_dump($x === $y); // bool(false)Code language: HTML, XML (xml)

Not identical operator (!==)

The not identical operator (!==) returns true if the values are not equal or they do not have the same type; otherwise, it return false . For example:

 $x = 20; $y = 10; var_dump($x != $y); // bool(true) $x = 20; $y = '20'; var_dump($x != $y); // bool(false)Code language: HTML, XML (xml)

Greater than (>)

The greater than return true if the lefthand value is greater than the righthand value; otherwise, it returns false :

 $x = 10; $y = 20; var_dump($x > $y); // bool(false) var_dump($y > $x); // bool(true)Code language: HTML, XML (xml)

Greater than or equal to (>=)

The greater than or equal to operator returns true if the lefthand value is greater than or equal to the righthand value; otherwise, it returns false. For example:

 $x = 20; $y = 20; var_dump($x >= $y); // bool(true) var_dump($y >= $x); // bool(true)Code language: HTML, XML (xml)

Less than (<)

The less than operator returns true if the lefthand value is less than the righthand value; otherwise, it returns false. For example:

 $x = 20; $y = 10; var_dump($x < $y); // bool(false) var_dump($y < $x); // bool(true)Code language: HTML, XML (xml)

Less than or equal to (<=)

If the lefthand value is less than or equal to the righthand value, the less than or equal to operator returns true; otherwise, it returns false. For example:

 $x = 20; $y = 20; var_dump($x // bool(true) var_dump($y // bool(true)Code language: HTML, XML (xml)

In this tutorial, you have learned how to use the PHP comparison operators to compare two values of the same or different types.

Источник

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

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

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

Пример Название Результат
$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 Меньше или равно TRUE если $a меньше или равно $b .
$a >= $b Больше или равно TRUE если $a больше или равно $b .

В случае, если вы сравниваете число со строкой или две строки, содержащие числа, каждая строка будет преобразована в число, и сравниваться они будут как числа. Эти правила также распространяются на оператор switch. Преобразование типов не происходит при использовании === или !== так как в этом случае кроме самих значений сравниваются еще и типы.

var_dump ( 0 == «a» ); // 0 == 0 -> true
var_dump ( «1» == «01» ); // 1 == 1 -> true
var_dump ( «10» == «1e1» ); // 10 == 10 -> true
var_dump ( 100 == «1e2» ); // 100 == 100 -> true

switch ( «a» ) case 0 :
echo «0» ;
break;
case «a» : // Эта ветка никогда не будет достигнута, так как «a» уже сопоставленно с 0
echo «a» ;
break;
>
?>

Для различных типов сравнение происходит в соответствии со следующей таблицей (по порядку).

Сравнение различных типов

Тип операнда 1 Тип операнда 2 Результат
null или string string NULL преобразуется в «», числовое или лексическое сравнение
bool или null что угодно Оба операнда преобразуются в bool , FALSE < TRUE
object object Встроенные классы могут определять свои собственные правила сравнения, объекты разных классов не сравниваются, объекты одного класса — сравниваются свойства тем же способом, что и в массивах (PHP 4), в PHP 5 есть свое собственное объяснение
string , resource или number string , resource или number Строки и ресурсы переводятся в числа, обычная математика
array array Массивы с меньшим числом элементов считаются меньше, если ключ из первого операнда не найден во втором операнде — массивы не могут сравниваться, иначе идет сравнение соответствующих значений (смотри пример ниже)
object что угодно object всегда больше
array что угодно array всегда больше

Пример #1 Сравнение булево/null

// Булево и null всегда сравниваются как булево значение
var_dump ( 1 == TRUE ); // TRUE — тоже что и (bool)1 == TRUE
var_dump ( 0 == FALSE ); // TRUE — тоже что и (bool)0 == FALSE
var_dump ( 100 < TRUE ); // FALSE - тоже что и (bool)100 < TRUE
var_dump (- 10 < FALSE ); // FALSE - тоже что и (bool)-10 < FALSE
var_dump ( min (- 100 , — 10 , NULL , 10 , 100 )); // NULL — (bool)NULL < (bool)-100 , тоже что и FALSE < TRUE
?>

Пример #2 Алгоритм сравнения обычных массивов

// Так сравниваются массивы при сравнении стандартными операторами
function standard_array_compare ( $op1 , $op2 )
if ( count ( $op1 ) < count ( $op2 )) return - 1 ; // $op1 < $op2
> elseif ( count ( $op1 ) > count ( $op2 )) return 1 ; // $op1 > $op2
>
foreach ( $op1 as $key => $val ) if (! array_key_exists ( $key , $op2 )) return null ; // не могут быть сравнимы
> elseif ( $val < $op2 [ $key ]) return - 1 ;
> elseif ( $val > $op2 [ $key ]) return 1 ;
>
>
return 0 ; // $op1 == $op2
>
?>

Сравнение чисел с плавающей точкой

Из-за особого внутреннего представления float , не нужно проверять на равенство два float -числа.

Для более подробной информации смотрите документацию по типу float .

Тернарный оператор

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

Пример #3 Присваивание значения по умолчанию

// Пример использования тернарного оператора
$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 .

Начиная с версии PHP 5.3 также стало возможным не писать среднюю часть тернарного оператора. Выражение expr1 ?: expr3 возвращает expr1 если expr1 имеет значение TRUE , и expr3 в другом случае.

Замечание: Пожалуйста учтите, что тернарный оператор является выражением и трактуется не как переменная, а как результат выражения. Это важно знать, если вы хотите вернуть переменную по ссылке. Выражение return $var == 42 ? $a : $b; не будет работать в функции, возвращающей значение по ссылке, а в более поздних версиях PHP также будет выдано предупреждение.

Замечание:

Рекомендуется избегать «нагромождения» тернарных выражений. Поведение PHP неочевидно при использовании нескольких тернарных операторов в одном выражении:

Пример #4 Неочевидное поведение тернарного оператора

// на первый взгляд, следующий код должен вывести ‘true’
echo ( true ? ‘true’ : false ? ‘t’ : ‘f’ );

// однако, он выводит ‘t’
// это происходит потому, что тернарные выражения вычисляются слева направо

// это намного более очевидная версия вышеприведенного кода
echo (( true ? ‘true’ : false ) ? ‘t’ : ‘f’ );

// здесь вы можете видеть, что первое выражение вычисляется в ‘true’, которое
// в свою очередь вычисляется в (bool)true, таким образом возвращая истинную ветвь
// второго тернарного выражения.
?>

Источник

Читайте также:  Python namespace in one file
Оцените статью