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 语法更加的方便和严格
路是自己走出来的,而不是选出来的。