PHP if / else速记符号-多个条件

Dur*_*gka 2 php conditional-operator

请考虑以下代码构造:

condition  ? code_if_true  : 
condition2 ? code_if_true2 : 
             code_if_false;
Run Code Online (Sandbox Code Playgroud)

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

有没有一种方法可以使此功能适用于PHP?

pha*_*t0m 5

在PHP中,条件运算符的 -associative [PHP.net] ,比几乎所有其他语言的地方是右结合。

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

 condition  ? code_if_true  : 
(condition2 ? code_if_true2 : 
              code_if_false ); 
Run Code Online (Sandbox Code Playgroud)

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