在 PHP 中,switch 語句用於根據不同條件執行不同的代碼塊。它提供了一種比冗長的 if...elseif...else 鏈更清晰、更易維護的替代方案,特別適合「單一變量對比多個值」的場景。
switch (expression) {
case label1:
// expression 等於 label1 時執行的代碼
break;
case label2:
// expression 等於 label2 時執行的代碼
break;
default:
// 所有 case 都不匹配時執行的代碼
}
case 的標籤進行比較case 關聯的代碼break 語句後跳出 switch 結構,防止「貫穿」到下一個 casedefault 區塊(可選)<?php
$x = 2;
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";
}
// 輸出:Number 2
?>
多個 case 可共用同一代碼塊:
switch ($fruit) {
case "apple":
case "pear":
case "banana":
echo "常見水果";
break;
default:
echo "其他水果";
}
switch 使用「鬆散比較」(==),即 "1" == 1 為真。若需嚴格比較(===),可改用 match 表達式(PHP 8.0+)或 if/else。
default 可置於任意位置,但慣例放在最後。無論位置如何,只有無 case 匹配時才執行。
switch 語句是處理多重條件分支的利器,善用 break 控制流程,搭配 default 確保兜底邏輯,能寫出清晰且高效的代碼。