多分支結構透過 elseif 鏈接多個條件,實現多路互斥決策,是處理區間判斷、狀態機的常用模式。
if (條件1) {
// 分支1
} elseif (條件2) {
// 分支2
} elseif (條件3) {
// 分支3
} else {
// 預設分支
}
<?php
$age = 5;
if ($age > 18) {
echo '你是成年人!';
} elseif ($age > 8 && $age < 18) {
echo '你的年齡適合讀書';
} elseif ($age < 8) {
echo '你應該上幼兒園';
}
?>
| 特性 | 說明 |
|---|---|
| case 數量 | 可無限多個 |
| default | 可選,建議保留作兜底 |
| break | 必要,防止貫穿(故意貫穿需註釋) |
| 常量型別 | int、float、string、bool |
| 比較方式 | 鬆散比較 (==) |
| 場景 | 推薦 | 理由 |
|---|---|---|
| 離散值匹配(狀態碼、類型) | switch | 跳躍表優化、語義清晰 |
| 區間/範圍判斷 | if-elseif | 支援複合條件 |
| 複雜布林表達式 | if-elseif | 靈活組合 |
| 字串前綴/模式匹配 | if-elseif | 可用 strpos/preg_match |
| 效能敏感、分支>10 | switch | O(1) 查找優勢 |
elseif 考慮查找表/策略模式$isMinor = $age < 18多分支是業務規則編碼的主戰場,合理選擇結構並控制複雜度是可維護代碼的關鍵。