switch (n) {
case label1:
// n == label1 時執行
break;
case label2:
// n == label2 時執行
break;
case label3:
// n == label3 時執行
break;
default:
// 以上都不匹配時執行
}
關鍵點:break 防止穿透執行;default 處理未匹配情況;支持整數、字符串比較。
Switch 語句演示
switch ($grade) {
case 'A':
case 'B':
case 'C':
echo "及格";
break;
case 'D':
case 'F':
echo "不及格";
break;
}
switch (true) {
case $score >= 90:
$level = '優秀';
break;
case $score >= 80:
$level = '良好';
break;
case $score >= 60:
$level = '及格';
break;
default:
$level = '不及格';
}
$result = match ($status) {
'pending' => '待處理',
'processing' => '處理中',
'completed' => '已完成',
default => '未知狀態',
};
=== 嚴格比較避免類型轉換陷阱break 導致 case 穿透'1' == 1 為 true)switch 是處理多條件分支的優雅方式,配合 break 和 default 能清晰表達業務邏輯。現代 PHP 還提供 match 表達式作為函數式替代方案,根據項目 PHP 版本合理選擇。