简介
PHP 8 引入了 match() 表达式,用来替代传统的 switch 语句,提供更简洁、更安全的方式进行条件匹配。与 switch 不同,match() 是一个表达式,它会返回值,并且使用 严格比较(===)。
基本语法
$result = match (表达式) {
值1 => 结果1,
值2 => 结果2,
值3, 值4 => 结果3, // 多个值匹配同一个结果
default => 默认结果
};
match() 直接返回值,并且必须匹配到一个值,否则会抛出 UnhandledMatchError。
match() VS switch()
| 特性 | switch | match |
|---|---|---|
| 语法 | 需要 case 和 break |
直接使用 => |
| 比较方式 | 宽松比较 (==) |
严格比较 (===) |
| 返回值 | 需要 return |
直接返回值 |
fall-through |
可能(如果缺少 break) |
不会(默认不会执行下一个 case) |
| 未匹配情况 | 不会抛异常 | 会抛异常 |
match() 的基本用法
基本示例
$number = 2;
$result = match ($number) {
1 => 'One',
2 => 'Two',
3 => 'Three',
default => 'Unknown'
};
echo $result; // 输出 "Two"
-
match()自动返回值,不需要return -
严格比较,
2 == "2"在switch里会匹配,但在match()里不会
多个值匹配同一个结果
$fruit = "apple";
$color = match ($fruit

最低0.47元/天 解锁文章
535

被折叠的 条评论
为什么被折叠?



