转载

php逻辑运算符

PHP 逻辑运算符

运算符 名称 例子 结果
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运算符优先级)。

逻辑运算符示例

  1. <?php 
  2.  
  3. // -------------------- 
  4. // foo() 根本没机会被调用,被运算符“短路”了 
  5.  
  6. $a = ( false && foo ()); 
  7. $b = ( true || foo ()); 
  8. $c = ( false and foo ()); 
  9. $d = ( true or foo ()); 
  10.  
  11. // -------------------- 
  12. // "||" 比 "or" 的优先级高 
  13.  
  14. // 表达式 (false || true) 的结果被赋给 $e 
  15. // 等同于:($e = (false || true)) 
  16. $e = false || true ; 
  17.  
  18. // 常量 false 被赋给 $f,true 被忽略 
  19. // 等同于:(($f = false) or true) 
  20. $f = false or true ; 
  21.  
  22. var_dump ( $e , $f ); 
  23.  
  24. // -------------------- 
  25. // "&&" 比 "and" 的优先级高 
  26.  
  27. // 表达式 (true && false) 的结果被赋给 $g 
  28. // 等同于:($g = (true && false)) 
  29. $g = true && false ; 
  30.  
  31. // 常量 true 被赋给 $h,false 被忽略 
  32. // 等同于:(($h = true) and false) 
  33. $h = true and false ; 
  34.  
  35. var_dump ( $g , $h ); 
  36. ?> 

以上例程的输出类似于:

  1. bool(true) 
  2. bool(false) 
  3. bool(false) 
  4. bool(true)
正文到此结束
Loading...