今天一个同事遇到的线上问题,最终发现原因挺有意思的,发出来大家一起学习下:
大家先看我下面的代码的输出结果:
各位老板,这个竟然是输出 22222 , 哈哈 跟预期的不一样,本来是想当 $aa 是 3 或者为null 的时候,都输出 22222, $aa 为 2 的时候输出 333;
谁知:我竟然得到输入 2 得到的是 22222
然后细想下就发现了,case 3 || null 的时候,实际上是 case (3 || null) : 其实就是相当于 case true: 也就是说,只要 $aa 是个true 的表达式就可以了,即只要 $aa 不为0,那就一定是 true
所以有了下面的结果:
那么,我如何实现我最初的想法呢?
最简单了,每个条件加一个case:
好啦,就写这些,没有问题啦,各位看官点赞啦!