Logical Operators

Logical Operators
Example Name Result
\$a and \$b And TRUE if both \$a and \$b are TRUE.
\$a or \$b Or TRUE if either \$a or \$b is TRUE.
\$a xor \$b Xor TRUE if either \$a or \$b is TRUE, but not both.
! \$a Not TRUE if \$a is not TRUE.
\$a && \$b And TRUE if both \$a and \$b are TRUE.
\$a || \$b Or TRUE if either \$a or \$b is TRUE.

The reason for the two different variations of "and" and "or" operators is that they operate at different precedences. (See Operator Precedence.)

Example#1 Logical operators illustrated

``` <?php// foo() will never get called as those operators are short-circuit\$a = (false && foo());\$b = (true  || foo());\$c = (false and foo());\$d = (true  or  foo());// "||" has a greater precedence than "or"\$e = false || true; // \$e will be assigned to (false || true) which is true\$f = false or true; // \$f will be assigned to falsevar_dump(\$e, \$f);// "&&" has a greater precedence than "and"\$g = true && false; // \$g will be assigned to (true && false) which is false\$h = true and false; // \$h will be assigned to truevar_dump(\$g, \$h); ```

The above example will output something similar to:

``` bool(true) bool(false) bool(false) bool(true) ```