【发布时间】:2023-03-19 05:19:01
【问题描述】:
根据操作码应该是 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)。实际上这是问题和操作码调查的主要原因。
【问题讨论】:
-
从编辑中的示例看来 () 对 POST_INC 操作没有影响。
-
这段代码既不可读也不有用。下一个 PHP 版本可以更改该行为。代码更简洁,让每个人都有机会理解它。
-
这个问题与 PHP 的工作原理有关,与代码质量无关。
-
再一次。这是一个无用的问题,因为代码不清晰,并且可以通过 PHP 随时更改以摆脱这种混乱。 Interesting article - 已经 6 岁了,许多问题都已解决,但很多问题还没有解决。我认为在这个巴比伦项目 PHP 中问这样的问题是没有用的。
-
对我来说不是没用。编辑完成它。为什么 () 不改变预期的行为?