gpt4 book ai didi

php - 为什么如果我们评估这个 : TRUE AND TRUE ? 'yes' : 'no' 等于 TRUE

转载 作者:行者123 更新时间:2023-12-01 18:49:54 25 4
gpt4 key购买 nike

如果我们评估这个:TRUE AND TRUE,为什么会这样? 'yes' : 'no' 等于 TRUE 但不等于 yes

何时评估:(TRUE AND TRUE) ? 'yes' : 'no' 等于 yes

最后当我们尝试评估:TRUE && TRUE ? 'yes' : 'no' 等于 yes

这是一个 php 错误还是什么? TIA:)

最佳答案

相信语言。无论您观察到什么行为都会发生,因为这就是您的代码所做的。如果您发现错误,则 99.99% 是您的错,而不是 PHP 中的错误。

有了这种心态,你就能取得进步。


看看纯粹的推理向我们展示了什么:

TRUE AND TRUE ? 'yes' : 'no'

(TRUE AND TRUE) ? 'yes' : 'no'

行为不同。

因为我们所做的只是更改计算顺序,这意味着第一个表达式必须解析为:

TRUE AND (TRUE ? 'yes' : 'no')

事实上,TRUE 且“yes”TRUE


规则有时很复杂。在这种情况下,您必须知道 operator precedence以及值如何 converted to boolean.

manual特别提到了差异。

The reason for the two different variations of "and" and "or" operators is that they operate at different precedences. (See Operator Precedence.)


如果您不确定优先顺序,最好用括号明确标记您的意图。至少,我就是这么做的。如果这对我来说不明显,也可能会给其他人带来问题。当然,如果您不必背诵规则,您可以更快地阅读代码。但不要滥用这一点,明显的事情不应该在代码中提及,不要仅仅因为你懒于学习基本规则而增加语法噪音;)


从实际角度来看,最好在代码中避免使用 AND

关于php - 为什么如果我们评估这个 : TRUE AND TRUE ? 'yes' : 'no' 等于 TRUE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27421900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com