运算符 | 名称 | 例子 | 结果 |
---|---|---|---|
and | 与 | $x and $y | 如果 $x 和 $y 都为 true,则返回 true。 |
or | 或 | $x or $y | 如果 $x 和 $y 至少有一个为 true,则返回 true。 |
xor | 异或 | $x xor $y | 如果 $x 和 $y 有且仅有一个为 true,则返回 true。 |
&& | 与 | $x && $y | 如果 $x 和 $y 都为 true,则返回 true。 |
|| | 或 | $x || $y | 如果 $x 和 $y 至少有一个为 true,则返回 true。 |
! | 非 | !$x | 如果 $x 不为 true,则返回 true。 |
“与”和“或”是两种不同形式的运算符。
原因是它们运算的优先级不同(见php运算符优先级)。
逻辑运算符示例
- <?php
- // --------------------
- // foo() 根本没机会被调用,被运算符“短路”了
- $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 );
- ?>
以上例程的输出类似于:
- bool(true)
- bool(false)
- bool(false)
- bool(true)