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
是红色,因此 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
块中的最后一个块,请记住使用 break
语句结束 default
块。
常用代码块
如果你希望多个 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";
}
自己试试 »