您现在的位置是:首页 > PHP框架交流PHP框架交流
PHP8.0新特性(5) Match 表达式
上善若水2024-03-05 10:24:34【PHP框架交流】 111人已围观
简介熟悉PHP8.0的新特性,Match表达式match匹配比较严格,会验证类型和值,但大多数情况下,Match都可以替代,而且语法更加简洁!官方文档:https://www.php.net/manua
熟悉PHP8.0的新特性,Match 表达式match匹配比较严格,会验证类型和值,但大多数情况下,Match都可以替代,而且语法更加简洁!
官方文档:https://www.php.net/manual/zh/control-structures.match.php
match 表达式基于值的一致性进行分支计算。 match表达式和 switch 语句类似, 都有一个表达式主体,可以和多个可选项进行比较。 与 switch 不同点是,它会像三元表达式一样求值。 与 switch 另一个不同点,它的比较是严格比较( ===)而不是松散比较(==)。 Match 表达式从 PHP 8.0.0 起可用。
新的 match 类似于 switch,并具有以下功能:
Match 是一个表达式,它可以储存到变量中亦可以直接返回。
Match 分支仅支持单行,它不需要一个 break; 语句。
Match 使用严格比较。
Match无法完全取代switch语句,但是可以替代switch语句的某些功能。
1.强类型比较,字符串数字和数字不相同。
switch (8.0) {
case '8.0':
$result = "Oh no!";
break;
case 8.0:
$result = "This is what I expected";
break;
}
echo $result, PHP_EOL;
//> Oh no!
echo match (8.0) {
'8.0' => "Oh no!",
8.0 => "This is what I expected",
};
//> This is what I expected
2.match 表达式分支可以通过逗号分隔,包含多个表达式。 这是一个逻辑 OR,当多个分支表达式右侧相同时,就可以用这种缩写。类似于短路, True || $a=false
这个意思
$x = $a = $b = 1;
$result = match ($x) {
// 匹配分支:
1, 2, 3 => 5,
// 等同于以下三个分支:
($a = 4) => 4,
($b = 5) => 5,
};
print_r(compact('a', 'b', 'x'));
打印结果
Array
(
[a] => 1
[b] => 1
[x] => 1
)
当$x = 5;$a = $b = 1;
时候则打印结果
打印结果
Array
(
[a] => 1
[b] => 1
[x] => 1
)
3.match 表达式必须详尽列出所有情况。 如果主体表达式不能被任意分支条件处理, 会抛出 UnhandledMatchError。
当$x = $a = $b = 100;
时候则打印结果:
Fatal error: Uncaught UnhandledMatchError: Unhandled match value of type int in D:\phpstudy_pro\WWW\testphp8_0\PHP8_0\match_expression.php on line 30
UnhandledMatchError: Unhandled match value of type int in D:\phpstudy_pro\WWW\testphp8_0\PHP8_0\match_expression.php on line 30
可以加入default ,
与Switch的类似,这样就不会报错了。
$result = match ($x) {
// 匹配分支:
1, 2, 3 => 5,
// 等同于以下三个分支:
($a = 4) => 4,
($b = 5) => 5,
default => 998,
};
很赞哦! (0)
相关文章
随机图文
-
使用thymeleaf渲染第一个页面 博客首页
在搭建完springboot+thymeleaf环境后,可以先尝试先渲染一个页面静态页面,由于数据库还未准备就绪,就先只显示页面,springboot默认为我们配置有"classpath:/META- -
二十条笑话:七夕快到了,给朋友们推荐一些好听的歌
一、昨天和朋友在外边吃饭,一共消费320,我说老板不要发票给300好了,老板不同意说小本生意不能少,我坚持就给300,老板说最多打个9折,只听计算机里传来优美的声音:320乘以0.9等于288。我现在都无法忘记老板当时的表情!二、女:“为什么你们男人都喜欢素颜的女人?”男:“错,我们男人不是喜欢素颜的女人,是喜欢特么素颜也很美的女人……”三、七夕快到了,给朋友们推荐一些好听的歌《分手》 -
看完笑的肚子疼的经典爆笑段子
1、坐我对面的女同事怀孕辞职了,我问领导:“她几个月了?”领导说:“才三个多月呢。”我奇怪了:“至于这么早辞职吗?”领导倒也直率:“她说怕天天看着你,以后孩子出生长得丑。”2、老师:请选一个成语,形容一个姑娘特别单纯~小明:目不识丁。老师:滚出去!3、有一天在公交车上一位小伙子不让座,站在旁边的大妈愤怒的说道:对于你这样的年轻人我真想一巴掌扇过去。小伙子淡定的说道: -
springboot 自带定时任务
定时执行是比较常见的功能,springboot自带了定时执行,上手第一个hello cron第一个定时脚本执行… 搭建springboot项目编写需要执行cron定时脚本添加注解加入容器以及开启定时脚