php switch語句文法執行個體和與ifelse的效率比較

來源:互聯網
上載者:User
Switch語句也是物件導向編程語句中最長常見的邏輯控制語句了。Switch 語句用於執行基於多個不同條件的不同動作 – 即當條件不同的時候,執行不同的邏輯操作。它跟其他語句中的switch用法差不多的,但注意有有一個break語句。

PHP中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;}

舉例:

switch($i){  case 1:    echo 1;    break;  case 2:    echo 2;    break;  default:    echo 'others';}

也可以使用switch來判斷一個取值範圍,或者說是在case中自訂條件。

<?phpheader("content-type:text/html;charset=utf8");$score=50;switch($score) { case $score>=90 && $score<=100:  echo "優<br>";  break; case $score>=80 && $score<90:  echo "良<br>";  break; case $score>=70 && $score<80:  echo "中<br>";  break; case $score>=60 && $score<70:  echo "及格<br>";  break; case $score>=0 && $score<60:  echo "不及格<br>";  break; default:  echo"成績輸入錯誤<br>";}?>

簡單樣本

<?php  //switch細節  //情況一:數值匹配的時候自動轉換成字串  $a=1;  switch($a){   case "1":     echo 'hello1';     break;   default:     echo 'sorry none is the same!';     break;  }  echo '<br/>'.'成功退出····';  echo '<hr/>';   //情況二:數值匹配的時候自動轉換成字元  $a=1;  switch($a){   case '1':     echo 'hello2';     break;   default:     echo 'sorry none is the same!';     break;  }  echo '<br/>'.'成功退出····';  echo '<hr/>';   //情況三:字元匹配的時候自動轉換成數值  $a='1';  switch($a){   case 1:     echo 'hello3';     break;   default:     echo 'sorry none is the same!';     break;  }  echo '<br/>'.'成功退出····';  echo '<hr/>';   //情況四:字串匹配的時候自動轉換成數值  $a="1";  switch($a){   case 1:     echo 'hello4';     break;   default:     echo 'sorry none is the same!';     break;  }  echo '<br/>'.'成功退出····';  echo '<hr/>';   //情況五:float也可以匹配  $a=1.1;  switch($a){   case 1.1:     echo 'hello5';     break;   default:     echo 'sorry none is the same!';     break;  }  echo '<br/>'.'成功退出····';  echo '<hr/>';   //情況六:非0是true  $a=true;  switch($a){   case 1:     echo 'hello6';     break;   case true:     echo 'hello61';     break;   default:     echo 'sorry none is the same!';     break;  }  echo '<br/>'.'成功退出····';  echo '<hr/>';   //情況七:能匹配boolean  $a=true;  switch($a){   case true:     echo 'hello7';     break;   case 2:     echo 'hello71';     break;   default:     echo 'sorry none is the same!';     break;  }  echo '<br/>'.'成功退出····';  echo '<hr/>';   //情況八:能匹配null  $a=null;  switch($a){   case 2://'' "" false 0 都能進入     echo 'hello8';     break;   case null:     echo 'hello81';     break;   default:     echo 'sorry none is the same!';     break;  }  echo '<br/>'.'成功退出····';  echo '<hr/>';   //情況九:退出順序  $a=5;  switch($a){   case 1:     echo 'hello6';     break;   case 2:     echo '我是2號出口';     break;   case 5:     echo '我是5號出口';     //break;   case true:     echo 'hello61';     break;   default:     echo 'sorry none is the same!';     break;  }  echo '<br/>'.'成功退出····';  echo '<hr/>';   //情況十:退出順序  $a=50;  switch($a){   default:     echo 'sorry none is the same!';     //break;   case 50:     echo 'hello6';     //break;   case 2:     echo '我是2號出口';     break;   case 5:     echo '我是5號出口';     //break;   case 6:     echo 'hello61';     break;  }  echo '<br/>'.'成功退出····';  echo '<hr/>'; ?>

運行結果

hello1成功退出····hello2成功退出····hello3成功退出····hello4成功退出····hello5成功退出····hello6成功退出····hello7成功退出····hello81成功退出····我是5號出口hello61成功退出····hello6我是2號出口成功退出····

不管寫什麼語言的程式,一定會考慮到代碼的運行效率問題。在查閱了一些資料後,switch與ifelse在不同的‘環境'下效率各有優勝。

1、當被判斷的值是常量(固定不變的值)時,switch的運行效率比ifelse的運行效率高;

$changliang=3;   // 變判斷的值為常量switch($changliang){  case 1:    echo '常量值為1';    break;   // 跳出迴圈  case 2:    echo '常量值為2';    break;  case 3:    echo '常量值為3';    break;}

2、當被判斷值為變數,ifelse的運行效率高於switch,ifelse貫徹一判到底的方針,會從第一個條件開始判斷,直到最後一個else,所以學會使用switch有好處;

$a = $_GET['a']; // 通過get傳值後接值; 被判斷的值if($a=1){  echo '變數a的值為1';}elseif($a=2){  echo '變數a的值為2';}elseif($a=3){  echo '變數a的值為3';}else{  echo '變數a的值為不知道';}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.