今天正好群里有人在问一道php运算符优先级的问题,正好以前也遇到过类似的问题,这里整理一下吧,方便大家理解 以防掉坑:)
先来道简单的
1 | $a = 3; |
这里掉坑的同学会认为是3. 注意=号是赋值 == 比较运算符
所以一个好的编码习惯 对于数字来说 最好把它放前面写成 5 == $a 这样即使你写成了 5 = $a 此时会报错 不会是隐式的赋值
来,我们接着看下一个坑.
1 | $x = 2; |
掉坑里的同学可能认为结果是我, 因为$x确实等于2 根据三元运算符的规则 ?前为true就输出我了.
这里的知识点在于运算符优先级以及三元运算符左结合的特性,其实真正的执行流程是这样的:
1 | $x = 2;//将2赋值给变量x 没啥说的 |
嗯,继续围观坑
1 | $a = 3; |
这题相信不少同学在做面试题的时候应该会遇到过,我第一次做的时候也被坑了。
被坑的同学相信答案大概有这么几种(4,6),(2,6)
$b基本没啥争议,关键是$a到底是神马情况,来我们来讲解一下这个坑。
1 | #赋值 没啥说的 |
更多大坑,等待收集..也欢迎大家提供~~