Логические операторы в PHP
Для чего нужны логические операторы?
Логические операторы позволяют производить анализ числовых и текстовых данных, благодаря логическим конструкциям (И, Или, Исключающее или и Отрицание).
Синтаксис логических операторов в PHP
Пример | Название | Результат |
$a and $b | И | TRUE если и $a, и $b TRUE. |
$a or $b | Или | TRUE если или $a, или $b TRUE. |
$a xor $b | Исключающее или | TRUE если $a, или $b TRUE, но не оба. |
! $a | Отрицание | TRUE если $a не TRUE. |
$a && $b | И | TRUE если и $a, и $b TRUE. |
$a || $b | Или | TRUE если или $a, или $b TRUE. |
Важный момент: Смысл двух разных вариантов для операторов and и or в том, что они работают с различными приоритетами (смотрите таблицу Приоритет выполнения операторов).
Пример использования логических операторов
<?php // -------------------- // foo() никогда не буде вызвана, так как эти операторы являются шунтирующими (short-circuit) $a = (false && foo()); $b = (true || foo()); $c = (false and foo()); $d = (true or foo()); // -------------------- // "||" имеет больший приоритет, чем "or" // Результат выражения (false || true) присваивается переменной $e // Действует как: ($e = (false || true)) $e = false || true; // Константа false присваивается $f, а затем значение true игнорируется // Действует как: (($f = false) or true) $f = false or true; var_dump($e, $f); // -------------------- // "&&" имеет больший приоритет, чем "and" // Результат выражения (true && false) присваивается переменной $g // Действует как: ($g = (true && false)) $g = true && false; // Константа true присваивается $h, а затем значение false игнорируется // Действует как: (($h = true) and false) $h = true and false; var_dump($g, $h); ?>