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

请求解析PHP中表达式1 + + + 1求值为2的原因

为什么表达式 1 + + + 1 在PHP中求值为2?

嘿,这个问题其实搞懂PHP的运算符优先级和一元加号的作用就迎刃而解了,咱们一步步拆解开来看:

  • 首先得明确PHP里两种+运算符的区别:

    • 二元加号:就是咱们日常用的加法,用来计算两个数值的和,比如1 + 1。
    • 一元加号:单个+放在值的前面,作用是把操作数转换成数值类型——如果本身是正数,结果和原数完全一样(比如+1还是1,+"123"会转成数值123)。
  • 回到你给出的表达式1 + + + 1,PHP会按照运算符优先级来解析它:
    一元加号的优先级比二元加法更高,所以PHP会把后面连续的+都识别为一元加号。实际这个表达式会被解析成:

    1 + (+(+1))
    
  • 接下来的计算顺序就非常清晰了:

    1. 先算最内层的+1,结果还是1;
    2. 再算外层的+(1),结果依旧是1;
    3. 最后用二元加号计算1 + 1,结果自然就是2。

举个类似的例子帮你加深理解:如果表达式是1 + + - 1,会被解析成1 + (+(-1)),计算后就是1 + (-1),结果是0,是不是一下子就明白逻辑了?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:57:54