请考虑以下代码构造:
condition ? code_if_true :
condition2 ? code_if_true2 :
code_if_false;
这不适用于 PHP,而它适用于 JavaScript。
有没有办法让它为 PHP 工作?
请考虑以下代码构造:
condition ? code_if_true :
condition2 ? code_if_true2 :
code_if_false;
这不适用于 PHP,而它适用于 JavaScript。
有没有办法让它为 PHP 工作?
在 PHP 中,条件运算符是左关联的 [ PHP.net ],与几乎所有其他右关联的语言相比。
这就是为什么您需要使用括号来控制评估顺序的原因1:
condition ? code_if_true :
(condition2 ? code_if_true2 :
code_if_false );
1解析运算符的顺序,而不是计算操作数的顺序。后者基本上是未定义的[PHP.net]