1. 程式人生 > 其它 >php-新特性之match解析

php-新特性之match解析

技術標籤:php

在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"; }

結果:
在這裡插入圖片描述