php-新特性之match解析

在PHP8 alpha2发布引入了一个新的关键字:match。
刚在本地尝试使用match,结果报“unexpected . . .”错误,其实并无错误,需要将php版本更新。
match与switch有些许类似。
在这里插入图片描述
match可以用来做什么?
简单的match案例:

// match解析
$result = match(2){
    
    
    1 => 'One',
    2 => 'Two',
};

var_dump($result);

结果:
在这里插入图片描述

看如下代码:

// match解析
$age = 20;

$result = match(true){
    
    
    $age >= 65 => 'target_1',
    $age >= 25 => 'target_2',
    $age >= 18 => 'target_3',
    default => 'target_default',
};

var_dump($result);

结果:
在这里插入图片描述

匹配的结果是‘target_3’,从这里可以看出match参与匹配功能的实现,可以做内容筛选匹配。

再看一个示例:

// match解析
$text = 'Bienvenue chez nous';

$result = match(true){
    
    
    str_contains($text,'Welcome') || str_contains($text,'Hello') => 'en',
    str_contains($text, 'Bienvenue') || str_contains($text, 'Bonjour') => 'fr',
};

var_dump($result);

结果:
在这里插入图片描述

str_contains

str_contains:确认一个字符串是否包含一个给定的字符串。
str_contains ( string $haystack , string $needle ) : bool

// str_contains
if(str_contains('abc','')){
    
    
    echo "Always return true";
}

结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_41993525/article/details/113819429