请考虑以下代码构造:
condition ? code_if_true :
condition2 ? code_if_true2 :
code_if_false;
这不适用于PHP,而适用于JavaScript。
有没有办法让这个适用于PHP?
答案 0 :(得分:3)
在PHP中,条件运算符为left-associative[PHP.net],与几乎所有其他正确关联的语言相比。
这就是为什么你需要使用括号来控制评估的顺序 1 :
condition ? code_if_true :
(condition2 ? code_if_true2 :
code_if_false );
1 评估操作数时,解析哪些运算符的顺序 不 。后者基本上是undefined[PHP.net]