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

PHP if-else语句条件判断输出Correct的原因解析

PHP if判断输出Correct的逻辑解释

对应运行代码如下:

<?php
$a = 200;
$b = 300;
if ($a > $b + $b != 3)
    print "Correct";
else
    print "Incorrect";
?>

代码实际运行输出为 Correct,这个结果是PHP的运算符优先级、结合方向、松散比较规则共同作用的结果,运算步骤拆解:

  • 第一步:优先计算高优先级的算术运算。PHP里+这类算术运算符优先级远高于比较运算符,所以先算$b + $b,代入$b=300得到结果600,此时if括号内的表达式简化为 200 > 600 != 3
  • 第二步:按左结合规则计算同优先级比较。>和!=属于同优先级比较运算符,PHP对这类同优先级运算符遵循从左到右的左结合规则,所以先算左侧的200 > 600,结果显然不成立,得到布尔值false,表达式进一步简化为 false != 3
  • 第三步:松散比较得到最终判断值。PHP默认使用松散比较,不同类型值比较时会自动做类型转换:布尔值false和整数3比较时,false会被转为整数0,0和3不相等,因此false != 3的判断结果为布尔值true

最终if条件为真,自然执行if分支输出Correct。不少人会误判结果,基本都是错把运算顺序理解成先算后面的$b !=3,忽略了算术运算符的优先级更高、同优先级比较左结合的规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 01:21:33