php中邏輯操作符&和&&的異同
阿新 • • 發佈:2019-02-06
php中邏輯操作符&和&&的異同.
在php中有5種算術操作符(+ - * / %),6種賦值操作符(+= -= *= /= %= .=),8種比較操作符(=== < > <= >= != <> !==),6種的邏輯操作符(如&&、 ||、 &、 |、 ! 。其中邏輯與&可寫成and,邏輯或|寫成or),以及一些其他操作符(錯誤控制操作符@、 執行操作符反引號"--不是單引號、字串操作符.與.=、遞增/遞減操作符++/--、三元操作符?:)。
關於操作符優先順序,可以參考相關文件。
php中&和&&的異同
- <?php
- $a=10;
- if($a>4 && (++$a>10))
- {
- }
- //輸出結果為11.
- echo$a;
- ?>
- <?php
- $a=10;
- if($a>4 and (++$a>10))
- {
- }
- //輸出結果為11.
- echo$a;
- ?>
- **************************************************************
- <?php
- $a=10;
-
if($a>4 && (++$a<10))
- {
- }
- //輸出結果為11.
- echo$a;
- ?>
- <?php
- $a=10;
- if($a>4 & (++$a<10))
- {
- }
- //輸出結果為11.
- echo$a;
- ?>
- *********************************************************
- <?php
- $a=10;
- if($a<4 && (++$a>10))
- {
- }
- //輸出結果為10.
- echo$a;
- ?>
- <?php
- $a=10;
-
if($a<4 & (++
- {
- }
- //輸出結果為11.
- echo$a;
- ?>
- *******************************************************************
- <?php
- $a=10;
- if($a<4 && (++$a<10))
- {
- }
- //輸出結果為10.
- echo$a;
- ?>
- <?php
- $a=10;
- if($a<4 & (++$a<10))
- {
- }
- //輸出結果為11.
- echo$a;
- ?>
- *******************************************************************
- <?php
- // 下面的 sktest() 不被呼叫,原因是它們被運算子“短路”。
- $a = (false && sktest());
- $b = (true || sktest());
- $c = (false and sktest());
- $d = (true or sktest());
- // "||" 的優先順序比 "or" 高
- $e = false || true; // $e 被賦值為 (false || true),結果為 true
- $f = false or true; // $f 被賦值為 false [Altair注:"=" 的優先順序比 "or" 高]
- var_dump($e, $f);
- // "&&" 的優先順序比 "and" 高
- $g = true && false; // $g 被賦值為 (true && false),結果為 false
- $h = true and false; // $h 被賦值為 true [Altair注:"=" 的優先順序比 "and" 高]
- var_dump($g, $h);
- ?>