当前位置:  首页>> 技术小册>> PHP8入门与项目实战(2)

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

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

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

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

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

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

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

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

  1. class Match{}