php优先级问题
结合方向 | 运算符 | 附加信息 |
---|---|---|
非结合 | clone new | clone 和 new |
左 | [ | array() |
非结合 | ++ – | 递增/递减运算符 |
非结合 | ~ - (int) (float) (string) (array) (object) (bool) @ | 类型 |
非结合 | instanceof | 类型 |
右结合 | ! | 逻辑操作符 |
左 | * / % | 算术运算符 |
左 | + - . | 算术运算符和字符串运算符 |
左 | << >> | 位运算符 |
非结合 | < <= > >= <> | 比较运算符 |
非结合 | == != === !== | 比较运算符 |
左 | & | 位运算符和引用 |
左 | ^ | 位运算符 |
左 | | | 位运算符 |
左 | && | 逻辑运算符 |
左 | && | 逻辑运算符 |
左 | ? : | 三元运算符 |
右 | = += -= *= /= .= %= &= = ^= <<= >>= | 赋值运算符 |
左 | and | 逻辑运算符 |
左 | xor | 逻辑运算符 |
左 | or | 逻辑运算符 |
左 | , | 多处用到左联表示表达式从左向右求值,右联相反 |
举例:
1 | $a=1; |
输出结果:
说明:先运算 5&&$c ,结果是true,再运算 4 ,结果也是true, 后面的就不再执行,最后 再赋值运算$a=true; 进入if语句体进行运算,所以结果就是$a=true,$b=3,$c=3