PHP三元运算符使用注意事项

以前写三元运算符的时候可能会这样写

$a = true ? 0 : true ? 1 : 2;

这种写法在PHP8.0.0之前是没问题的,因为之前左联,也就是从左到右依次计算。但是在之后就不行了,因为从PHP8.0.0之后就取消了左联,属于无关联,直接这么写会报错。应该加上括号来区分优先级。

$a =  (true ? 0 : true) ? 1 : 2 = 2

结语

括号的使用,哪怕在不是必要的场合下,通过括号的配对来明确标明运算顺序,而非靠运算符优先级和结合性来决定,因为运算符的优先级会在 PHP 版本间发生变化或者依赖于旁边的代码,加上括号,不但能避免这类问题,还能够增加代码的可读性。

猜你喜欢

转载自blog.csdn.net/a7442358/article/details/123816299
今日推荐