PHP if/else 简写符号 - 多个条件

3
请考虑以下代码结构:
condition  ? code_if_true  : 
condition2 ? code_if_true2 : 
             code_if_false;

虽然 JavaScript 可以实现此功能,但对于 PHP 来说却不可行。

是否有一种方法可以让 PHP 实现此功能?


它为什么不能正常工作?出现了什么错误? - tomexsans
3
它在 PHP 中是可以工作的。你具体遇到了什么问题? - Salman A
2
你需要更具体一些,而不是说“它不起作用”。对于任何依赖于复杂逻辑的事物使用这种简写方式只会让你的代码难以阅读。最好使用嵌套的if语句。 - GordonM
3
在PHP中它确实可以工作,但方式不同于在JS中的工作方式。 - DCoder
1个回答

9
在PHP中,条件运算符是结合[PHP官网]的,与几乎所有其他语言不同,它们是右结合的。
这就是为什么你需要使用括号来控制评估的顺序1
 condition  ? code_if_true  : 
(condition2 ? code_if_true2 : 
              code_if_false ); 

1运算符的解析顺序与操作数的评估时间无关,这是基本上未定义的[PHP.net]


括号完成了任务。非常感谢你的帮助,phantOm。 - Durian Nangka

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接