流程控制
这篇讲 PHP 中两种条件判断结构——if 系列和 switch——以及各自最佳适用场景。
if 语句
当指定条件为 true 时,执行代码块:
<?php
$t = date("H");
if ($t < "20") {
echo "Have a good day!";
}
?>
if…else 语句
条件为 true 执行一块代码,否则执行另一块:
<?php
$t = date("H");
if ($t < "20") {
echo "Have a good day!";
} else {
echo "Have a good night!";
}
?>
if…elseif…else 语句
多条件分支判断:
<?php
$t = date("H");
if ($t < "10") {
echo "Have a good morning!";
} elseif ($t < "20") {
echo "Have a good day!";
} else {
echo "Have a good night!";
}
?>
switch 语句
当你需要将一个变量与多个具体值进行匹配时,switch 比多层 if...elseif 更清晰:
switch (expression) {
case label1:
// expression == label1 时执行
break;
case label2:
// expression == label2 时执行
break;
default:
// 所有 case 都不匹配时执行
}示例——判断喜欢的水果:
<?php
$favfruit = "orange";
switch ($favfruit) {
case "apple":
echo "Your favorite fruit is apple!";
break;
case "banana":
echo "Your favorite fruit is banana!";
break;
case "orange":
echo "Your favorite fruit is orange!";
break;
default:
echo "Your favorite fruit is something else!";
}
?>
工作原理:
- 计算表达式的值
- 依次与每个
case的值比较 - 匹配则执行对应代码
break阻止"穿透"到下一个 case- 无一匹配时执行
default
不要漏掉
break!如果没有 break,代码会继续执行下一个 case(称为"fall-through"),这通常不是你想要的行为。同时注意 switch 使用松散比较(==),需要严格比较类型时优先使用 if...elseif。if vs switch 如何选择
| 场景 | 推荐 |
|---|---|
范围判断(如 $x > 10) | if...elseif |
不等式比较(<、>、!=) | if...elseif |
| 单个变量与多个具体值的匹配 | switch |
| 需要严格类型比较 | if...elseif(用 ===) |
一句话小结
if 系列适合所有条件判断场景,尤其是范围和不等式;switch 适合单变量多值匹配,代码更整洁。记住:switch 要用 break,需要严格比较选 if。下一篇讲 循环结构。
最后更新于