PHP8新特性之匹配表达式

追格官方小助手/ 2022年03月06日/ PHP/ 浏览 1982

PHP8中的匹配表达式类似于PHP7的switch语句。

1. match匹配单值

相对于switch隐藏了break

$name = match (2) {
    1 => 'kaka',
    2 => 'niuiniu',
};

echo $name;  // niuiniu

2. 匹配多个条件

$method = $_SERVER['REQUEST_METHOD'];

match ($method) {
    'post' => $this->handlePost(),
    'get', 'put' =>  $this->handleGet(),
};

3. 默认值

存在跟switch相同的属性default

$name = match (3) {
    1 => 'kaka',
    2 => 'niuniu',
    default => 'heihei',
};

echo $name;  // heihei

4. 如果不设置默认值会报错

如果不设置default则会报错

$name = match(3) {
    1 => 'kaka',
    2 => 'niuniu',
};

echo $name;  // Uncaught UnhandledMatchError: Unhandled match value of type int

5. 强制类型匹配

默认强制类型匹配,如下代码匹配值为int,但是搜索值为字符串3,所以会直接走default

$name = match (3) {
    1 => 'kaka',
    2 => 'niuniu',
    "3" => 'niuniu',
    default => 'zero',
};

echo $name;  // zero

发表评论

暂无评论,抢个沙发...

客服 工单