天天看点

PHP8中match新语句的操作方法

PHP8 新出的一个语法很好用,就是 match 语句。match 语句跟原来的 switch 类似,不过比 switch 更加的严格和方便

原来的 switch 语句代码如下:

1 function getStr( $strType ){
 2 
 3     switch( $strType ){
 4 
 5         case 1:
 6 
 7             $str = 'one';
 8 
 9             break;
10 
11         case 2:
12 
13             $str = 'two';
14 
15             break;
16 
17         default :
18 
19             $str = 'error';
20 
21     }
22 
23     return $str;
24 
25 }
26 
27 //当输入数值 1 和 字符 '1' 不会进行类型判断
28 
29 echo getStr(1); //one
30 
31 echo getStr('1'); //one
32 
33 echo getStr(2); //two
34 
35 echo getStr('2'); //two      

换成 match 语句后:

function getStr( $strType ){
    return match( $strType ){
        1 => 'number one',
        '1' => 'string one',
        default => 'error',
    };
}
//可以看出输入数值 1 跟字符 `1` 返回的值是不同的
echo getStr(1); //number one
echo getStr('1'); //string one
      

 

1 function getStr( $strType ){
 2     return match( $strType ){
 3         1 => (function(){
 4             return 'number one';
 5         })(),
 6         '1' => (function(){
 7             return 'string one';
 8         })(),
 9         default => 'error',
10     };
11 }
12 //虽然这种代码风格也能行的通,但是总感觉哪里怪怪的
13 
14 echo getStr(1); //number one
15 echo getStr('1'); //string one      

 PHP8 新出的语法 match 相比原来的 switch 语法更加的方便和严格

路是自己走出来的,而不是选出来的。