|
1
3
许多年前,PHP的创建者犯了一个错误,现在已经太晚了,无法修复,导致三元运算符的“关联性”毫无帮助,这在 the manual page .
所以当你写这篇文章时:
您希望PHP将其理解为:
也就是说,执行第一个测试,然后给出最终结果
但PHP实际上理解为:
换言之,整体第一
所有这些都将评估
|
|
|
2
2
这是一个运算符优先级问题。 当然,我应该说这不是一个非常干净的代码。无论如何 在备选方案中,尽量使用分号后的括号;
|
|
3
2
它不起作用的原因是PHP处理三元运算符关联性的方式与您预期的不同。从 manual :
因此,您的表达式计算为
= & gt;
= & gt;
因此得到除以0的误差。您需要手动将第二个操作员分组,使其正常工作,即
|
|
|
DIES · 多动作语句的公共if或三元运算符? 8 年前 |
|
Leo Messi · 三元内部的空合并运算符 8 年前 |
|
|
Haikel · 是否可以将这两行写为三元运算符? 8 年前 |
|
|
JustADude · setter与Classic If中的三元运算 8 年前 |
|
|
Franck Boudraa · Ruby/Rails三元和范围 8 年前 |