首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 流程控制 switch 語句完整教學:語法、特性與最佳實踐

     編輯:PHP 綜合知識

語法結構

switch ($expr) {
    case $val1:
        // 代碼
        break;
    case $val2:
        // 代碼
        break;
    ...
    default:
        // 預設代碼
}

執行機制

  1. 計算 $expr 值
  2. 2. 依序比對 case 值(鬆散比較 ==) 3. 匹配到 → 執行該案例代碼,直到 break 或結束 4. 全不匹配 → 執行 default

完整範例

$x = 2;
switch ($x) {
    case 0:
        echo "x 等於 0";
        break;
    case 1:
        echo "x 等於 1";
        break;
    case 2:
        echo "x 等於 2";
        break;
    default:
        echo "x 不等於 0、1、2";
}
// 輸出:x 等於 2

重要特性與提示

特性說明
多 case 共用代碼case 1: case 2: case 3: ...
case 值型別支援整數、浮點、字串、常數
default 非必填可省略
鬆散比較switch("2") case 2: 會匹配(==)
嚴格比較替代需用 match (PHP 8) 或 if/else ===
穿透行為無 break 會繼續執行下一 case

進階:PHP 8 match 表達式

$result = match ($x) {
    0 => '零',
    1 => '一',
    2 => '二',
    default => '其他',
};
// 嚴格比較 (===)、無穿透、直接回傳值

最佳實踐建議

  • 條件較少(≤3)且簡單 → if/else 可讀性更好
  • 多重離散值比對 → switch 結構清晰
  • 需嚴格型別比對 → PHP 8 用 match,舊版用 if/else ===
  • case 內代碼過長 → 提取為函數/方法
  • 永遠加上 break,或註釋說明刻意穿透
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved