PHP switch 語句
switch
語句用於基於不同的條件執行不同的操作。
PHP switch 語句
使用 switch
語句來選擇執行多個程式碼塊中的一個。
語法
switch (expression) {
case label1:
//code block
break;
case label2:
//code block;
break;
case label3:
//code block
break;
default:
//code block
}
工作原理如下
- 表示式被計算一次
- 表示式的值與每個 case 的值進行比較
- 如果匹配成功,則執行關聯的程式碼塊
break
關鍵字會中斷 switch 語句塊的執行- 如果沒有匹配項,則執行
default
程式碼塊
示例
$favcolor = "red";
switch ($favcolor) {
case "red":
echo "Your favorite color is red!";
break;
case "blue":
echo "Your favorite color is blue!";
break;
case "green":
echo "Your favorite color is green!";
break;
default:
echo "Your favorite color is neither red, blue, nor green!";
}
自己動手試一試 »
break 關鍵字
當 PHP 遇到 break
關鍵字時,它會中斷 switch 語句塊的執行。
這將停止執行更多程式碼,並且不再測試任何 case。
最後一個程式碼塊不需要 break,因為該程式碼塊本身就會結束。
警告: 如果在非最後一個 case 中省略 break
語句,並且該 case 匹配成功,那麼即使求值不匹配下一個 case,下一個 case 也會被執行!
示例
如果我們從 case "red" 中移除 break
語句會發生什麼?
$favcolor
是 red,因此 case "red" 的程式碼塊將被執行,但由於它沒有 break
語句,case "blue" 的程式碼塊也會被執行。
$favcolor = "red";
switch ($favcolor) {
case "red":
echo "Your favorite color is red!";
case "blue":
"Your favorite color is blue!";
break;
case "green":
echo "Your favorite color is green!";
break;
default:
echo "Your favorite color is neither red, blue, nor green!";
}
自己動手試一試 »
default 關鍵字
default
關鍵字指定如果沒有 case 匹配時要執行的程式碼。
示例
如果沒有 case 匹配,則執行 default
程式碼塊。
$d = 4;
switch ($d) {
case 6:
echo "Today is Saturday";
break;
case 0:
echo "Today is Sunday";
break;
default:
echo "Looking forward to the Weekend";
}
自己動手試一試 »
default
case 不一定是 switch 語句塊中的最後一個 case。
示例
將 default
程式碼塊放在 switch
語句塊末尾以外的其他位置是允許的,但不推薦。
$d = 4;
switch ($d) {
default:
echo "Looking forward to the Weekend";
break;
case 6:
echo "Today is Saturday";
break;
case 0:
echo "Today is Sunday";
}
自己動手試一試 »
注意: 如果 default
不是 switch
語句塊中的最後一個程式碼塊,請記住在 default
程式碼塊後加上 break
語句。
共用程式碼塊
如果您希望多個 case 使用相同的程式碼塊,可以這樣指定 case:
示例
一個程式碼塊的多個 case
$d = 3;
switch ($d) {
case 1:
case 2:
case 3:
case 4:
case 5:
echo "The weeks feels so long!";
break;
case 6:
case 0:
echo "Weekends are the best!";
break;
default:
echo "Something went wrong";
}
自己動手試一試 »