PHP8.0 match表达式
match 语法:
$returnValue = match (exp) {
// 单条件表达式
single_conditional_expression => return_expression,
// 多条件表达式
conditional_expression1, conditional_expression2 => return_expression,
};
match
表达式基于值的一致性进行分支计算。 match
表达式和 switch
语句类似, 都有一个表达式主体,可以和多个可选项进行比较。 与 switch
不同点是,它会像三元表达式一样求值。 与 switch
另一个不同点,它的比较是严格比较( ===
)而不是松散比较(==
)
macth注意点:
- match使用
===
进行严格比较; - match表达式必须以
;
结尾;
match表达式与switch的区别:
-
match
比较分支值,使用了严格比较 (===
), 而 switch 语句使用了松散比较。 -
match
表达式会返回一个值。 -
match
的分支不会像switch
语句一样, 落空时执行下个 case。 -
match
表达式必须彻底列举所有情况。
单条条件基础用法:
$num = 10;
$result = match ($num) {
5 => '我返回了 ' . $num,
10 => '我返回了 ' . $num,
15 => '我返回了 ' . $num,
};
// 10
echo $result;
多条件用法:
<?php
$language = 'php';
$result = match ($language) {
'php' => 'PHP是世界上最好的语言',
'vue','react' => '都是js框架',
default => '啥也不是',
};
// PHP是世界上最好语言
echo $result;
当$language为 vue
或react
时,将输出都是js框架
;
当$language为 其他值时,输出 default
所默认的结果 啥也不是
。
表达式用法
<?php
class A
{
public function getA()
{
return 10;
}
}
$a = new A;
function num ($num) {
return $num * 2;
}
function getWebName()
{
return '自如初';
}
$num = 10;
$result = match ($num) {
$a->getA() => getWebName(),
5 => num($num),
};
echo $result;
我是温新
每天进步一点点,就一点点
我很喜欢的一句话,分享一下,出自《SQL进阶》
这个世界没有一天是无聊的,只不过是你懒惰已久的感官无法发现眼前事物的乐趣。
请登录后再评论