3

请考虑以下代码构造:

condition  ? code_if_true  : 
condition2 ? code_if_true2 : 
             code_if_false;

这不适用于 PHP,而它适用于 JavaScript。

有没有办法让它为 PHP 工作?

4

1 回答 1

8

在 PHP 中,条件运算符是关联的 [ PHP.net ],与几乎所有其他右关联的语言相比。

这就是为什么您需要使用括号来控制评估顺序的原因1

 condition  ? code_if_true  : 
(condition2 ? code_if_true2 : 
              code_if_false ); 

1解析运算符的顺序,而不是计算操作数的顺序。后者基本上是未定义的[PHP.net]

于 2013-01-27T11:09:33.317 回答