1. 程式人生 > >php中邏輯操作符&和&&的異同

php中邏輯操作符&和&&的異同

php中邏輯操作符&和&&的異同.

在php中有5種算術操作符(+ - * / %),6種賦值操作符(+= -= *= /= %= .=),8種比較操作符(=== < > <= >= != <> !==),6種的邏輯操作符(如&&、 ||、 &、 |、 ! 。其中邏輯與&可寫成and,邏輯或|寫成or),以及一些其他操作符(錯誤控制操作符@、 執行操作符反引號"--不是單引號、字串操作符.與.=、遞增/遞減操作符++/--、三元操作符?:)。

關於操作符優先順序,可以參考相關文件。


php中&和&&的異同

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