邏輯運算子無非是將值進行邏輯運算。 (&&)or(||)」這兩種運算子在程式中可以加快PHP程式碼的運行速度。
首先看一段程式碼:
<?php $test="李四"; $test=="张三"&&$test="张三来了"; echo $test; //输出“李四” $test="李四"; $test=="张三"||$test="张三不在这里"; echo $test; //输出“张三不在这里” ?>
為什麼會產生這樣的結果呢?
在參與邏輯運算的兩邊表達式中,是依照從左到右順序運算的。為假。邏輯或就不同了:只要一個為真那整個表達式就為真。 所以,在左邊為假的情況下,還要運行右邊的表達式判斷。感到奇怪了。掌握這一點的關鍵就是表達式的運行方向,是從左到右。函數,但不能是一系列的語句組合或輸出語句。跳過,不執行y;
對於「或」(||) 運算 : x||y 當x為true時,直接跳過,不執行y。異同<?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 & (++$a>10)) { } //输出结果为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); ?>
以上是php邏輯運算子&和&&以及&&和||的使用區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!