php-新特性之match解析
阿新 • • 發佈:2021-02-16
技術標籤: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";
}
結果: