【发布时间】:2015-08-27 11:29:52
【问题描述】:
corresponding nested ternary operator in php? 和 In which order are nested short hand assignments evaluated? 解释说 PHP 中的三元运算符不会按预期进行计算。
看这个例子:
echo 0 ?: 1 ?: 2 ?: 3; //1
echo 0 ? 0 : 1 ? 1 : 2 ? 2 : 3; //2
即使阅读文档,我仍然无法理解为什么短格式和长格式的评估方式不同?
【问题讨论】:
-
你有什么不明白的?您已经对正确的欺骗有一个问题,这解释了三元是左关联的
-
@Rizier123 但是如果两个示例都是左关联的,为什么它们会输出不同的值?是在内部使用速记组还是有不同的优先顺序?
-
@billyonecan 因为它们是不同的三元运算符,所以你的 2 行是不同的
-
@billyonecan 写信并回答:stackoverflow.com/a/32248940/3933332 希望逐步格式化有助于显示正在发生的事情
-
@Rizier123 这不是我的问题,我只是好奇 :)
标签: php ternary-operator