Switch 语句
本课属于 Coddy PHP 学习旅程的“基础知识”单元。第 32 课,共 71 课。
当你需要将一个变量与多个特定值进行比较时,switch 语句可以替代冗长的 if-elseif 链,让代码更简洁。
switch 语句只检查一次变量,然后将它与不同的 case 值进行匹配:
<?php
$day = "Monday";
switch ($day) {
case "Monday":
echo "Start of the week";
break;
case "Friday":
echo "Almost weekend";
break;
case "Saturday":
case "Sunday":
echo "Weekend!";
break;
default:
echo "Regular day";
}
?>PHP 会将 $day 与每个 case 进行比较。找到匹配项后,它会运行对应代码块中的代码。
break 语句很重要。它会告诉 PHP 在执行匹配的 case 后退出 switch。否则,PHP 会继续运行下面的所有代码,甚至包括其他 case 中的代码。
注意,Saturday 和 Sunday 通过将多个 case 堆叠在一起,共享同一段代码。default case 的作用类似于 else。当没有其他 case 匹配时,它就会运行。
<?php
$grade = "B";
switch ($grade) {
case "A":
echo "Excellent!";
break;
case "B":
echo "Good job!";
break;
default:
echo "Keep trying!";
}
?>当你要将一个变量与多个确切值进行比较时,使用 switch。对于复杂条件或范围,继续使用 if-elseif 语句。
挑战
简单从输入中读取一个表示交通信号灯颜色的字符串 command。
使用 switch 语句,根据颜色确定相应的操作:
- 如果命令是
red,输出Stop - 如果命令是
yellow,输出Slow down - 如果命令是
green,输出Go - 如果命令是
flashing red或flashing yellow,输出Proceed with caution - 对于任何其他值,输出
Invalid signal
示例:
如果输入是 green,输出应为:
Go如果输入是 flashing red,输出应为:
Proceed with caution如果输入是 blue,输出应为:
Invalid signal亲手试试
<?php
// 读取输入
$command = trim(fgets(STDIN));
// TODO: 在下方使用 switch 语句编写你的代码
// 根据交通信号灯的颜色确定该采取什么行动
?>这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: PHP 在线编译器