Логические операторы в PHP
Для сравнения каких-либо переменных в языках программирования используются встроенные конструкции. В PHP эту роль исполняет комбинацияif-elseif-else, в скобках после которой указываются используемые значения и определённые символы, показывающие, по какому принципу вести проверку. Они называются операторами сравнения и легко запоминаются.
Список операторов
Логические операторы служат для вложения нескольких условий внутрь одной проверки и представлены шестью вариантами:
- and – «и» (также: &&);
- or – «или» (также: ||);
- xor – «исключающее “или”»;
- «!» – отрицание.
Варианты написания – текстом или спецсимволами, отличаются приоритетами при обработке скрипта. Среди них проблемным может показаться xor, однако всё просто – он означает «если верно лишь одно условие, но не оба»).
Также присутствуют операторы сравнения, большая часть которых предназначена для работы с числами. Речь идёт о:
- == – равно;
- === – равно (тождественно);
- != – не равно;
- !== – не равно (тождественно);
- – больше;
- <– меньше;
- = – больше или равно;
- <= – меньше или равно;
- <=> – spaceship, проверка разницы между значениями.
В ходе изучения языка может встретиться такое понятие, как «тернарный оператор», служащий для сокращения написания кода и рассмотренный в примерах.
Примеры использования
Условия с логическими операторами
Здесь сравниваются сразу две переменных. В результате, верным окажется условие №2.
<?
$abc = 5+11;
$xyz = 21;
if($abc == 16 and $xyz == 10) {
echo»Верно условие №1″;
} elseif($abc == 16 and $xyz == 21) {
echo»Верно условие №2″;
} else {
echo»Все условия являются ложными!»;
}
?>
Условия с разными операторами сравнения
<?
$abc = 1000;
$xyz = 10000;if($xyz < 123) {
echo»Значение переменной <b>xyz</b> меньше, чем <b>123</b>.»;
} elseif($xyz <= 1000 and $abc == 999) {
echo»Значение переменной <b>xyz</b> меньше или равно <b>1000</b>, а значение переменной <b>abc</b> равно <b>999</b>.»;
} elseif($xyz == 10000 and $abc == 1000) {
echo»Значение переменной <b>xyz</b> равно <b>10000</b>, а значение переменной <b>abc</b> равно <b>1000</b>.»;
}
?>
Итог: выполнение третьего условия.
Тернарный оператор
Условие без тернарного оператора выглядит следующим образом:
<?
if ($abc < $xyz) {
$www = $abc;
} else {
$www = $xyz;
}
?>
Его можно сократить до:
<?$www = ($abc < $xyz) ? $abc : $xyz;?>