之前我们聊过JIT,最近PHP8 alpha2发布了,引入了一个新的关键字:match, 这个关键字的作用跟switch有点类似。
虽然我一般对语法糖无感,但这个我觉得还是有点意思,match这个词也挺好看,那么它是干啥的呢?
在以前我们可能会经常使用switch做值转换类的工作,类似:
(当然,有的同学会说,谁会这么写,用个数组转换不行么? 拜托,这是举例啊,数组也只能数字键和整数啊,万一key是需要其他表达式呢,万一你要多个key对应一个值呢,对吧?)
那么如果使用match关键字呢,可以变成类似:
相比switch, match会直接返回值,可以直接赋值给$result了。
并且,类似switch的多个case一个block一样,match的多个条件也可以写在一起,比如:
需要注意的和switch不太一样的是,以前我们用switch可能会经常遇到这种诡异的问题: