在網上找到一句: switch比較if具有速度優勢,一個是採取轉移地址清單的方法;還有就是switch一般在鬆散的情況下也多不採取"比較-轉移 "的方法,而是用dec(sub)-jz的指令對,後者不僅是指令的長度變短了,速度上也有優勢
下面我們來驗證一下吧
If…Else 語句
如果您希望在某個條件成立時執行一些代碼,在條件不成立時執行另一些代碼,請使用 if….else 語句。
文法
if (condition) //設定條件
code to be executed if condition is true; //如果條件為真的代碼被執行;
else
code to be executed if condition is false; //如果條件為假,代碼被執行
執行個體1
如果當前日期是星期一,下面的代碼將輸出 “星期一快樂。”,否則會輸出 “天天快樂。”:
| 代碼如下 |
複製代碼 |
<?php $d=date("D"); //變數d賦值 if($d=="Mon"){ echo "星期一快樂!"; }else{ echo "天天快樂!"; } ?>
|
執行個體2
如果d等於1時輸出“數字1”,否則輸出“數字不是1”
| 代碼如下 |
複製代碼 |
<?php $d=2; //變數d賦值 if($d==1){ echo "數字1"; //變數d等於1時輸出的值 }else{ echo "數字不是1"; //不等於1時輸出的值 } ?> |
Switch 語句
文法
| 代碼如下 |
複製代碼 |
switch (expression) { case label1: code to be executed if expression = label1; break; case label2: code to be executed if expression = label2; break; default: code to be executed if expression is different from both label1 and label2; }
|
執行個體
工作原理:
對錶達式(通常是變數)進行一次計算
把運算式的值與結構中 case 的值進行比較
如果存在匹配,則執行與 case 關聯的代碼
代碼執行後,break 語句阻止代碼跳入下一個 case 中繼續執行
如果沒有 case 為真,則使用 default 語句
| 代碼如下 |
複製代碼 |
<?php switch ($x) { case 1: echo "Number 1"; break; case 2: echo "Number 2"; break; case 3: echo "Number 3"; break; default: echo "No number between 1 and 3"; } ?> |
總結3點
1.PHP中有兩個方法都是用於判斷值是否滿足條件,如果滿足/不滿足做出不同行為動作。
2.switch中的步長越短,效率越高,而if else 則更靈活,適合不只一個變數的比較。。
3.當被判斷值為變數,ifelse的運行效率高於switch,ifelse貫徹一判到底的方針,會從第一個條件開始判斷,直到最後一個else,所以學會使用switch有好處;