php中 if Else 與Switch 語句對比

來源:互聯網
上載者:User

在網上找到一句:  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有好處;

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.