| 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 false
var_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 true
var_dump ( $g , $h );
?> The above example will output something similar to:
bool(true) bool(false) bool(false) bool(true)
© 2005-2008 BlaBla.cn 版权所有