php中的條件陳述式switch

來源:互聯網
上載者:User
switch 語句和 if 語句相似,都是條件陳述式。很多情況下,需要將一個變數(或者運算式) 與不同的值進行比較,並根據它等於哪個值來執行不同的代碼,這個時候,我們用 switch 語句更合適。

Switch語句也是物件導向編程語句中最長常見的邏輯控制語句了。Switch 語句用於執行基於多個不同條件的不同動作 – 即當條件不同的時候,執行不同的邏輯操作。

php中的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 語句和 elseif 語句的比較

在 switch 語句中,條件只求一次,然後和每個 case 比較,而在 elseif 語句中,條件會再次求值。如果你的條件比較複雜,或者是多次迴圈,用 switch 語句速度會更加快些。

類似文章推薦:

php中if else與else if使用區別執行個體介紹

聯繫我們

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