第 2 章 · 流程控制与数组 · 第 2.1 课
条件判断
if、elseif、else
程序经常要根据情况做不同的事。if 后面的括号里放条件,条件为真就执行花括号里的代码。多个条件从上往下依次判断,只会执行第一个成立的分支。
什么算“真”
if 会把条件转换成布尔值。false、0、0.0、""、"0"、null、空数组 [] 都算假,其他都算真。所以 if ($name) 可以用来判断字符串是否非空。
match 表达式(PHP 8)
要把一个值对应到另一个值时,match 比一长串 if 清爽得多。它会返回一个值,比较时用的是严格的 ===,多个值可以用逗号写在同一个分支,default 处理其余情况。
判断范围时,可以用 match (true):从上往下找第一个结果为 true 的条件。
switch
老代码里常见 switch。它用宽松比较 ==,而且每个分支末尾必须写 break,否则会继续执行下一个分支(这叫“穿透”)。新代码优先用 match。
选择题
下面哪个值放在 if (...) 里会被当作真?
练习 1
成绩等级
已通过根据 $score 输出等级:
| 分数 | 等级 |
|---|---|
| 90 及以上 | A |
| 80–89 | B |
| 70–79 | C |
| 60–69 | D |
| 60 以下 | E |
85 分应该输出 B。检查时会换几个分数测试,包括边界值 90 和 60。
练习 2
HTTP 状态码
已通过用 match 把 HTTP 状态码 $code 翻译成文字并输出:
- 200 →
OK - 301 或 302 →
Redirect - 404 →
Not Found - 500 →
Server Error - 其他 →
Unknown