PHP switch

PHP switch 有點類似 if else 組的效果,通常用在當有一個變數或表達式需要與其他的條件比較,符合哪個條件才執行的情況下使用,標準的 switch 語句至少包含多組 case 與 break 的組合,例如當一個變數丟到 switch 流程去跑,會從第一個 case 開始比較,若符合條件就執行程式碼,接著跳出 switch 語句,若不符合條件則進行下一個 case 的比較,以下準備幾個參考範例。

PHP switch 範例一、基本判斷
<?php
$i='1';

switch ($i) {
  case 0:
    echo "變數是 0";
    break;
  case 1:
    echo "變數是 1";
    break;
  case 2:
    echo "變數是 2";
    break;
}
?>
範例輸出
變數是 1
用 switch 判斷數字變數是相當容易的事情,範例中每個 case 接的數字會與變數 $i 做比較,如果與 $i 相同,就會執行程式碼,在此就是輸出字串,接著 break 跳出整個判斷式,switch 的執行流程是依序執行每個 case 判斷,當判斷到符合的條件,就跳出 switch。

PHP switch 範例二、判斷字串
<?php
$i='蘋果';

switch ($i) {
  case "蘋果":
    echo "變數是蘋果";
    break;
  case "香蕉":
    echo "變數是香蕉";
    break;
  case "水梨":
    echo "變數是水梨";
    break;
}
?>
範例輸出
變數是蘋果
這個範例是展示 switch 判斷字串的方式,與範例一判斷數字很類似,但要注意的是字串必須用單引號('')或雙引號("")包起來,否則很可能會出現無法判斷的情況,另外程式本身的編碼也必須能夠判斷繁體中文才可以,例如 utf-8 萬國碼。

PHP switch 範例三、switch 與 if else 的比較
<?php
$i='1';

if($i=='0'){
  echo '變數是 0';
}elseif($i=='1'){
  echo '變數是 1';
}elseif($i=='2'){
  echo '變數是 2';
}

echo ' ; ';

switch ($i) {
  case 0:
    echo "變數是 0";
    break;
  case 1:
    echo "變數是 1";
    break;
  case 2:
    echo "變數是 2";
    break;
}
?>
範例輸出
變數是 1 ; 變數是 1
這個範例中有兩組判斷式,原則上呈現的結果是一樣的。

PHP switch 範例四、使用 default
<?php
$i='2';

switch ($i) {
  case 0:
    echo "變數是 0";
    break;
  case 1:
    echo "變數是 1";
    break;
  default:
    echo "沒有相符合的結果";
}
?>
範例輸出
沒有相符合的結果
如果每個 case 都沒有符合的結果該怎麼辦?PHP switch 預設的結果是什麼都不執行,但我們希望可以在比對後,至少告訴我們沒有比對到相符合的結果,就可以在 switch 流程的最後加上 default 並加入顯示提示字串的方式來做到,有點類似 if elseif 最後一個 else,讓整個 switch 至少顯示一個最終結果。

延伸閱讀
© Copyright webtech.tw Since 2010