PHP 8从入门到精通(视频教学版)
上QQ阅读APP看书,第一时间看更新

4.8 PHP 8的新变化1——match表达式

match是PHP 8中新增的关键字,其作用与switch有点相似,用于变量的值转换与赋值。

下面可以举例说明,首先讲解switch操作:

程序运行会输出int(1),从而完成值转换操作。如果使用match关键字,如何实现同样的功能那?代码如下:

<?php
$a = "true";
$b = match($a) {
   "true" => 1, //可多值匹配,匹配方式为===,无匹配值会抛出Fatal error
   "false" => 0,
   "null" => NULL,
};
var_dump($b); //输出: int(1)
?>

相比switch,match会直接返回值,然后直接赋值给变量$b。

和switch多条件相似,match的多个条件也可以写在一起,代码如下:

<?php
$a = "true";
$b = match($a) {
    "true","online"  => 1, //可多值匹配,匹配方式为===,无匹配值会抛出Fatal error
    "false","off"=> 0,
    "null","empty" => NULL,
};
?>

注意:从PHP 8开始,match已经是关键字了,也就是说它不能出现在namespace或者类名中,下面的代码将会报语法错误:

class Match{}