Logical Operator is also called Relational Operator.
They are typically used to combine conditional statements.
Operator | Name | Example | Result |
---|---|---|---|
and | And | $x and $y | True if both $x and $y are true |
or | Or | $x or $y | True if either $x or $y is true |
xor | Xor | $x xor $y | True if either $x or $y is true, but not both |
&& | And | $x && $y | True if both $x and $y are true |
|| | Or | $x || $y | True if either $$x or $y is true |
! | Not | !$x | True if $x is not true |
<?php $a = TRUE; $b = FALSE; function myPrint($value1,$value2,$valueRes,$operator) { $format = '%1$s %4$s %2$s=%3$s'; $value1 = $value1 ? 'true' : 'false'; $value2 = $value2 ? 'true' : 'false'; $valueRes = $valueRes ? 'true' : 'false'; printf($format,$value1,$value2,$valueRes,$operator); } myPrint($a,$a,$a and $a,'and'); echo " , "; myPrint($a,$b,$a and $b,'and'); echo " , "; myPrint($b,$a,$b and $a,'and'); echo " , "; myPrint($b,$b,$b and $b,'and'); echo "<br>"; myPrint($a,$a,$a or $a,'or'); echo " , "; myPrint($a,$b,$a or $b,'or'); echo " , "; myPrint($b,$a,$b or $a,'or'); echo " , "; myPrint($b,$b,$b or $b,'or'); echo "<br>"; myPrint($a,$a,$a xor $a,'xor'); echo " , "; myPrint($a,$b,$a xor $b,'xor'); echo " , "; myPrint($b,$a,$b xor $a,'xor'); echo " , "; myPrint($b,$b,$b xor $b,'xor'); echo "<br>"; myPrint($a,$a,$a && $a,'&&'); echo " , "; myPrint($a,$b,$a && $b,'&&'); echo " , "; myPrint($b,$a,$b && $a,'&&'); echo " , "; myPrint($b,$b,$b && $b,'&&'); echo "<br>"; myPrint($a,$a,$a || $a,'||'); echo " , "; myPrint($a,$b,$a || $b,'||'); echo " , "; myPrint($b,$a,$b || $a,'||'); echo " , "; myPrint($b,$b,$b || $b,'||'); echo "<br>"; ?>
The difference between "and" and "&&" is the operator precedence.
<?php $a = true && false; $b = true and false; var_dump($a); // bool(false) Acts like: $g = (true && false) var_dump($b); // bool(true) Acts like: ($h = true) and false $c = false || true; $d = false or true; var_dump($c); // bool(true) Acts like: $c = (false || true) var_dump($d); // bool(false) Acts like: ($d = false) or true ?>