php中逻辑操作符&和&&的异同

php中逻辑操作符&和&&的异同.

在php中有5种算术操作符(+ - * / %),6种赋值操作符(+= -= *= /= %= .=),8种比较操作符(=== < > <= >= != <> !==),6种的逻辑操作符(如&&、 ||、 &、 |、 ! 。其中逻辑与&可写成and,逻辑或|写成or),以及一些其他操作符(错误控制操作符@、 执行操作符反引号"--不是单引号、字符串操作符.与.=、递增/递减操作符++/--、三元操作符?:)。

关于操作符优先级,可以参考相关文档。


php中&和&&的异同

[php]  view plain  copy
  1. $a=10;  
  2. if($a>4 && (++$a>10))  
  3. {  
  4. }  
  5. //输出结果为11.  
  6. echo $a;  
  7. ?>  
  8.   
  9. $a=10;  
  10. if($a>4 and (++$a>10))  
  11. {  
  12. }  
  13. //输出结果为11.  
  14. echo $a;  
  15. ?>  
  16.   
  17. **************************************************************  
  18.   
  19. $a=10;  
  20. if($a>4 && (++$a<10))  
  21. {  
  22. }  
  23. //输出结果为11.  
  24. echo $a;  
  25. ?>  
  26.   
  27. $a=10;  
  28. if($a>4 & (++$a<10))  
  29. {  
  30. }  
  31. //输出结果为11.  
  32. echo $a;  
  33. ?>  
  34.   
  35. *********************************************************  
  36.   
  37. $a=10;  
  38. if($a<4 && (++$a>10))  
  39. {  
  40. }  
  41. //输出结果为10.  
  42. echo $a;  
  43. ?>  
  44.   
  45. $a=10;  
  46. if($a<4 & (++$a>10))  
  47. {  
  48. }  
  49. //输出结果为11.  
  50. echo $a;  
  51. ?>  
  52.   
  53. *******************************************************************  
  54.   
  55. $a=10;  
  56. if($a<4 && (++$a<10))  
  57. {  
  58. }  
  59. //输出结果为10.  
  60. echo $a;  
  61. ?>  
  62.   
  63. $a=10;  
  64. if($a<4 & (++$a<10))  
  65. {  
  66. }  
  67. //输出结果为11.  
  68. echo $a;  
  69. ?>  
  70.   
  71. *******************************************************************  
  72.   
  73. // 下面的 sktest() 不被调用,原因是它们被运算符“短路”。  
  74. $a = (false && sktest());  
  75. $b = (true  || sktest());  
  76. $c = (false and sktest());  
  77. $d = (true  or  sktest());  
  78.   
  79. // "||" 的优先级比 "or" 高  
  80. $e = false || true; // $e 被赋值为 (false || true),结果为 true  
  81. $f = false or true; // $f 被赋值为 false [Altair注:"=" 的优先级比 "or" 高]  
  82. var_dump($e$f);  
  83.   
  84. // "&&" 的优先级比 "and" 高  
  85. $g = true && false; // $g 被赋值为 (true && false),结果为 false  
  86. $h = true and false; // $h 被赋值为 true [Altair注:"=" 的优先级比 "and" 高]  
  87. var_dump($g$h);  
  88.   
  89. ?>  

你可能感兴趣的:(PHP)