Операторы отношения
Операторы отношения применяются для сравнения значений. Обычно сравнивают числа, но РНР позволяет применять их и к строкам. Выражения, содержащие операторы отношения (или сравнения), всегда имеют значение типа Boolean, то есть TRUE или FALSE. Они часто применяются в конструкциях типа if.. else и подобных им. Об этом читайте в следующей главе.
Приведем все операторы отношения, доступные в РНР:
$а == $b – проверка на равенство
$а равняется $b – TRUE
$а не равняется $b – FALSE;
$а ! = $b – проверка на неравенство
$а не равняется $b – TRUE
$а равняется $b – FALSE;
$а < $b — проверка на меньше
$а меньше $b – TRUE
$а больше либо равно $b – FALSE;
$а > $b – проверка на больше
$а <= $b – проверка на меньше либо равно
$а >= $b – проверка на больше либо равно
$а === $b – проверка на идентичность
Приведенные операторы очень простые, хотя пояснений требует, наверное, последний из них (===). Этот оператор появился только в РНР 4. Он требует от своих операндов не только одинаковых значений, но и совпадение типа данных (листинг 5.1).
Листинг 5.1. Оператор проверки на идентичность.
‹?php
$a = 4; // переменная типа Integer
$b = "4"; // переменная типа String
echo "==: ";
echo ($a==$b); // выводит 1 (TRUE)
echo "‹br›";
echo "===: ";
echo ($a===$b); // выводит "" (FALSE)
?›
В данном случае значения переменных равны, но не равны их типы, поэтому они считаются неэквивалентными.
Логические операторы
Логические операторы выполняют операции булевской алгебры, то есть они работают со значениями типа Boolean. На самом деле в качестве операндов могут быть значения с другим типом данных. Дело в том, что они просто преобразовываются к типу Boolean по правилам, которые приводились в предыдущей главе. В результате выполнения логических операторов также получаются значения TRUE или FALSE. Рассмотрим каждый из них подробнее:
$а && $b – логическое «и»;
$а and $b – тоже логическое «и» (табл. 5.1);
Таблица 5.1. Логическое «и»
$а | $b | Результат |
FALSE | FALSE | FALSE |
FALSE | TRUE | FALSE |
TRUE | FALSE | FALSE |
TRUE | TRUE | TRUE |
$a || $b – логическое «или»;
$a or $b – тоже логическое «или» (табл. 5.2);
$а | $b | Результат |
FALSE | FALSE | FALSE |
FALSE | TRUE | TRUE |
TRUE | FALSE | TRUE |
TRUE | TRUE | TRUE |
$а XOR $b – исключающее «или» (табл. 5.3);
Таблица 5.3. Исключающее «или»
$а | $b | Результат |
FALSE | FALSE | FALSE |
FALSE | TRUE | TRUE |
TRUE | FALSE | TRUE |
TRUE | TRUE | FALSE |
! $a – логическое «не» (табл. 5.4).
Таблица 5.4. Логическое «не»
$а | Результат |
FALSE | TRUE |
TRUE | FALSE |
Наличие двух операторов на одну логическую операцию мы поясним в этой главе позже, когда будем рассматривать приоритетность.
Обратите внимание, что среди логических операторов есть унарный, то есть имеющий только один операнд (логическое «не»). В этой главе мы еще не раз будем встречаться с ними.
Логические операторы в сочетании с операторами отношения очень часто используются при ветвлении if…else, циклах while…do и в других конструкциях, где встречаются сложные логические условия.