PHP中邏輯運算符的高效用法---&&和||


偶爾遇到這個,查了一下,所以就摘錄了。

邏輯運算符無非是將值進行邏輯運算。還有其它用法嗎?首先讓我們先看一下下面的代碼,然后我們再一起展開話題。提前給出結論就是(&&)or(||)”這兩種運算符在程序中可以加快PHP代碼的運行速度。


  首先,我給出一段代碼: 

Php代碼   收藏代碼
  1. <?php     
  2.     $test="李四";     
  3.     $test=="張三"&&$test="張三來了";     
  4.     echo $test;  //輸出“李四”     
  5.     $test="李四";     
  6.     $test=="張三"||$test="張三不在這里";     
  7.     echo $test;  //輸出“張三不在這里”     
  8. ?>     

 
  為什么會產生這樣的結果呢?如果按照平常的方法,我們最少要用個IF語句來判斷。可現在只是兩個邏輯運算就會把變量的值給改變了。下面我們來分析一下它的運行原理。


   在參與邏輯運算的兩邊表達式中,是按照從左到右順序進行運算的。而“與”運算中只要有一個是假,整個表達式的結果為假。所以,當左邊表達式為假時,就無 需再進行運算了。這樣的處理無疑對程序的運行效率是大有好處的。所以說正如題目所說,是一種高效的用法。而邏輯或就不同了:只要一個為真那整個表達式就為 真。所以,在左邊為假的情況下,還要運行右邊的表達式判斷。明白或理解了上面所說,也就對結果不感到奇怪了。


上面的例子當然可以通過條件判斷語句來實現,現在的情況一 個是減少了代碼的量,最主要的是增加了程序的執行效率。掌握這一點的關鍵就是表達式的運行方向,是從左到右。當第一個值決定整個表達式的值時就會停止運 行。值得說明的是右邊可以是一個表達式,也可以是一個函數,但不能是一系列的語句組合或輸出語句。畢竟它還是邏輯表達式的一個組成部分。


最后,我們做以下總結:
對於“與”(&&) 運算: x && y 當xfalse時,直接跳過,不執行y
對於“或”(||) 運算 :   x||y 當xtrue時,直接跳過,不執行y


最后,一起總結就是反之亦然。

 

來源:http://www.365testing.com/HTML/kaifa/PHP/PHPjichu/2010_1225_10471.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM