Пример | Наименование | Резултат |
---|---|---|
$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. |
Причината за съществуването на две разновидности на операторите "и" и "или" е, че те оперират с различен приоритет. (Вж. Приоритет на операторите.)
Example #1 Нагледно пояснение на логическите оператори
<?php
// foo() никога няма да бъде извикана, тъй като операторите водят до късо съединение
$a = (false && foo());
$b = (true || foo());
$c = (false and foo());
$d = (true or foo());
// "||" has има по-висок приоритет от "or"
$e = false || true; // на $e ще бъде присвоена стойността от израза (false || true), която е true
$f = false or true; // на $f ще бъде пристоена стойност false
var_dump($e, $f);
// "&&" има по-висок приоритет от "and"
$g = true && false; // на $g ще бъде присвоена стойността от израза (true && false), която е false
$h = true and false; // на $h ще бъде пристоена стойност true
var_dump($g, $h);
?>
Примерът по-горе ще изведе нещо подобно на:
bool(true) bool(false) bool(false) bool(true)