
上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{}