PHP switch 语句
1. PHP switch 语句
switch 语句用于根据不同的条件执行不同的操作。
当需要从多个代码块中选择一个来执行时,请使用 switch 语句。
1.1 switch 的语法
switch (expression) {
case label1:
// 代码块
break;
case label2:
// 代码块
break;
case label3:
// 代码块
break;
default:
// 默认代码块
}它的工作原理如下:
- 表达式(expression)仅被计算一次。
- 表达式的值会与每个
case的值进行比较。 - 如果找到匹配项,则执行相关的代码块。
- break 关键字用于跳出
switch代码块。 - 如果没有找到任何匹配项,则执行
default默认代码块。
1.2 示例
$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!";
}2. PHP break 关键字
当 PHP 遇到 break 关键字时,它会跳出 switch 代码块。
这将停止代码的执行,并且不会再去测试后续的其他 case。
最后一个代码块不需要加上 break,因为代码执行到那里自然会结束。
警告:如果您在一个非末尾的 case 中省略了 break 语句,并且该 case 匹配成功,那么即使下一个 case 的值不匹配,下一个 case 中的代码也依然会被执行!
2.1 示例
如果我们在 case "red" 中去掉 break 语句会发生什么?
$favcolor 是红色的("red"),所以 case "red" 中的代码块会被执行。但由于没有 break 语句,紧随其后的 case "blue" 代码块也会被强制执行:
$favcolor = "red";
switch ($favcolor) {
case "red":
echo "Your favorite color is red!";
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!";
}3. PHP default 关键字
default 关键字用于指定在没有任何 case 匹配时要运行的代码:
3.1 示例
如果没有 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";
}4. 合并 Cases(匹配多个条件)
如果您希望多个 case 能够执行相同的代码块,您可以按照以下方式合并这些 case:
4.1 示例
为同一个代码块指定多个 case:
$d = 3;
switch ($d) {
case 1:
case 2:
case 3:
case 4:
case 5:
echo "The week feels so long!";
break;
case 6:
case 0:
echo "Weekends are best!";
break;
default:
echo "Something went wrong";
}