2020-06-19 22:35:56
PHP中switch语句用于多条件判断,通过松散比较匹配case值并执行对应代码块,适合单一变量与多固定值比较的场景,结构清晰且效率较高。
基本语法结构switch (表达式) { case 值1: // 执行代码块1 break; case 值2: // 执行代码块2 break; default: // 默认执行代码块(可选) break;}根据数字输出对应的星期几:
$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;}// 输出结果:星期三注意事项松散比较:PHP的switch使用松散比较(==),例如"5"和5会被视为相同。若需严格比较,需在case中显式转换类型或使用===(但switch本身不支持直接使用===)。
穿透(fall-through):省略break会导致代码继续执行下一个case,称为“穿透”。例如:
$num = 2;switch ($num) { case 1: case 2: echo "数字是1或2"; // 穿透:case 1无break,直接执行case 2 break; default: echo "其他数字";}// 输出:数字是1或2case值限制:case后不能是变量运算或函数调用(如case $a + 1:或case rand(1,10):),否则会报语法错误。
通过将switch的表达式设为true,结合case中的条件判断,可实现区间匹配:
$score = 85;switch (true) { case ($score >= 90): echo "优秀"; break; case ($score >= 80): echo "良好"; break; case ($score >= 70): echo "中等"; break; default: echo "需努力";}// 输出结果:良好掌握break的使用,避免意外穿透。
理解松散比较机制,必要时显式转换类型。
合理使用default处理异常情况。