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";
}
自己动手试一试 »