You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP中赋值与逻辑AND优先级问题:$y的值为何为false?

为什么$y的值是false?

嘿,我来帮你把这个逻辑理清楚~

你说的赋值运算符=优先级高于and是完全正确的,但这里的核心差异是括号改变了运算的执行顺序:

  • 对于$x = true and false:
    因为=的优先级比and高,PHP会先执行赋值操作$x = true,把true赋值给$x;之后才会执行true and false这个逻辑运算,但这个运算的结果不会影响已经完成赋值的$x,所以$x最终是true(PHP中echo布尔值true时会输出字符串1)。

  • 对于$y = (true and false):
    括号的优先级是所有运算符里最高的,所以PHP会先计算括号内部的true and false。逻辑与(and)运算的规则是只要有一个操作数为false,结果就为false,所以括号里的运算结果是false;接着把这个结果赋值给$y,因此$y的值就是false啦。

顺便提个小细节:PHP里and和&&的优先级不同,&&的优先级比=高,而and比=低,这也是很多人容易混淆的点,但你这里用的是and,所以核心还是括号的作用哦。

内容的提问来源于stack exchange,提问作者user9718914

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:17:51