PHP 8 匹配表达式
学习 PHP 8 中强大的 match 表达式,替代传统 switch 实现更简洁的条件匹配。 · 难度:入门 · +15XP
什么是 Match 表达式?
PHP 8 引入了 match 表达式,它是一种更安全、更简洁的条件分支结构,类似于 switch,但具有严格比较和返回值特性。
基本语法
$result = match (表达式) {
值1 => 结果1,
值2 => 结果2,
default => 默认结果
};与 Switch 的区别
| 特性 | switch | match |
|---|---|---|
| 比较方式 | 松散比较 (==) | 严格比较 (===) |
| 返回值 | 无返回值 | 有返回值 |
| 穿透行为 | 需要 break | 自动 break |
| 表达式类型 | 语句 | 表达式 |
代码示例
function getStatusMessage(int $status): string {
return match ($status) {
1 => 'Pending',
2 => 'Processing',
3 => 'Completed',
4 => 'Failed',
default => 'Unknown'
};
}
echo getStatusMessage(2); // 输出 Processing
Match 还可以处理多个条件:1, 2 => 'Low',以及复杂的条件表达式。
练习提示
尝试将下面的 switch 代码改写为 match 表达式,并观察输出结果。