【发布时间】:2017-12-12 06:23:31
【问题描述】:
我正在尝试通过 localhost 在 PHP 中运行以下代码,但它给出了意外的输出!
<?php
$a = 1;
echo ($a+$a++); // 3
?>
//答案是 3,但由于后增量,答案应该是 2 这是另一个代码,它给出了相同的答案!为什么?
<?php
$a = 1;
echo ($a+$a+$a++);
?>
//答案还是3!!!
【问题讨论】:
-
最后再放一个
echo $a;,看看实际效果。我认为它与operator precedence 有关,请参见示例#2。你使用的是哪个版本的 PHP? -
操作码 - 3v4l.org/iaF9i
-
我在兔子洞里又发现了几个异常:sandbox.onlinephpfunctions.com/code/…
-
在第一个示例中添加了
$a的简单回显:$a = 1; echo ($a+$a++); echo "_"; echo $a;。惊喜!它产生3_2。似乎这种行为发生在 PHP 5.1 版。
标签: php post-increment