偶爾遇到這個,查了一下,所以就摘錄了。
邏輯運算符無非是將值進行邏輯運算。還有其它用法嗎?首先讓我們先看一下下面的代碼,然后我們再一起展開話題。提前給出結論就是(&&)or(||)”這兩種運算符在程序中可以加快PHP代碼的運行速度。
首先,我給出一段代碼:
- <?php
- $test="李四";
- $test=="張三"&&$test="張三來了";
- echo $test; //輸出“李四”
- $test="李四";
- $test=="張三"||$test="張三不在這里";
- echo $test; //輸出“張三不在這里”
- ?>
為什么會產生這樣的結果呢?如果按照平常的方法,我們最少要用個IF語句來判斷。可現在只是兩個邏輯運算就會把變量的值給改變了。下面我們來分析一下它的運行原理。
在參與邏輯運算的兩邊表達式中,是按照從左到右順序進行運算的。而“與”運算中只要有一個是假,整個表達式的結果為假。所以,當左邊表達式為假時,就無 需再進行運算了。這樣的處理無疑對程序的運行效率是大有好處的。所以說正如題目所說,是一種高效的用法。而邏輯或就不同了:只要一個為真那整個表達式就為 真。所以,在左邊為假的情況下,還要運行右邊的表達式判斷。明白或理解了上面所說,也就對結果不感到奇怪了。
上面的例子當然可以通過條件判斷語句來實現,現在的情況一 個是減少了代碼的量,最主要的是增加了程序的執行效率。掌握這一點的關鍵就是表達式的運行方向,是從左到右。當第一個值決定整個表達式的值時就會停止運 行。值得說明的是右邊可以是一個表達式,也可以是一個函數,但不能是一系列的語句組合或輸出語句。畢竟它還是邏輯表達式的一個組成部分。
最后,我們做以下總結:
對於“與”(&&) 運算: x && y 當x為false時,直接跳過,不執行y;
對於“或”(||) 運算 : x||y 當x為true時,直接跳過,不執行y。
最后,一起總結就是反之亦然。
來源:http://www.365testing.com/HTML/kaifa/PHP/PHPjichu/2010_1225_10471.html