答案:PHP中switch语句用于多条件判断,语法为switch(表达式){case值:代码;break;},通过松散比较匹配case值,执行对应代码块,遇到break跳出避免穿透,default处理无匹配情况。示例根据$day输出星期几,注意事项包括case值不可为表达式、需注意类型松散比较、省略break会导致fall-through,技巧如用switch(true)结合条件判断实现区间匹配,适用于单一变量多值比较场景,结构清晰且效率高,合理使用default增强健壮性。

在PHP中,switch语句是一种用于多条件判断的流程控制结构,它比多个if-else语句更清晰、简洁,特别适合判断一个变量等于多个不同值的情况。
基本语法结构
switch语句的基本写法如下:
switch (表达式) {
}
case 值1:
// 执行代码块1
break;
case 值2:
// 执行代码块2
break;
default:
// 默认执行代码块(可选)
break;
}
说明:
- 表达式的值会被依次与每个case后的值进行比较(使用松散比较)
- 匹配成功后执行对应case下的代码
- 遇到break会跳出整个switch结构,防止“穿透”到下一个case
- default是可选项,当所有case都不匹配时执行
简单使用示例
根据数字输出对应的星期几:
$day = 3;输出结果为:星期三
switch ($day) {
case 1:
echo "星期一";
break;
case 2:
echo "星期二";
break;
case 3:
echo "星期三";
break;
case 4:
echo "星期四";
break;
case 5:
echo "星期五";
break;
default:
echo "周末";
break;
}
注意事项和技巧
使用switch时需要注意以下几点:- case值可以是整数、字符串或常量,但不能是表达式
- PHP使用松散比较,所以"5"和5可能被当作相同(如果变量类型不严格)
- 如果不加break,会继续执行下一个case的代码(称为“fall-through”)
- 多个case共用一段代码时,可以省略中间的break
$score = 85;这里switch判断的是true,靠case中的条件返回布尔值来匹配。
switch (true) {
case ($score >= 90):
echo "优秀";
break;
case ($score >= 80):
echo "良好";
break;
case ($score >= 70):
echo "中等";
break;
default:
echo "需努力";
break;
}










