gpt4 book ai didi

php - 为什么 $x=5; $x+++$x++;在 PHP 中等于 11?

转载 作者:IT王子 更新时间:2023-10-29 00:12:09 24 4
gpt4 key购买 nike

根据操作码,它应该是 12。我理解错了吗?

number of ops:  8
compiled vars: !0 = $x
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------
3 0 E > EXT_STMT
1 ASSIGN !0, 5
5 2 EXT_STMT
3 POST_INC ~2 !0
4 POST_INC ~3 !0
5 ADD ~4 ~2, ~3
6 ECHO ~4
7 7 > RETURN 1

branch: # 0; line: 3- 7; sop: 0; eop: 7; out1: -2
path #1: 0,

编辑

还有($x++)+($x++);返回相同的结果 (11)。实际上,这是问题和操作码调查的主要原因。

最佳答案

我读了几遍,但是 $x=5; $x++ + $x++; 是这样工作的:

在 $x++ 的情况下,它首先“被使用”,然后增加:

  • 将$x设为5
  • 将$x入栈(即5)
  • 增量(++) ($x 现在是 6, stack=[5])
  • 将 $x 加入堆栈 (stack=[5,6], 所以 5+6 -> $x=11)
  • 加法完成,结果为11
  • 增加 $x(++)(没有进一步使用,但 $x 现在是 7)

实际上,在这个具体的例子中,如果你要 echo $x; 它会输出 7。您永远不会将该值重新分配回 $x,因此 $x=7(您将它递增了两次);

关于php - 为什么 $x=5; $x+++$x++;在 PHP 中等于 11?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51059316/

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