当发生这种情况时,我正在玩PHP。查看注释代码。
<?php
error_reporting(0); //turns of errors and notices (which will be shown otherwise)
//here we would've gotten a notice saying $_ has no value, which is true. But PHP automatically gives it the value 0, then we add one to it. ($_++), add $_ and add $_. So it's 1 + 1 + 1 which is two somehow
echo ($_++ + $_ + $_);
所以我的问题是......为什么输出2?
答案 0 :(得分:1)
大部分答案都包含在您的代码中。
$_
最初为0
。按$_++
,您将$_
增加,将其设置为1。因此,$_
为1
,但后增量(!)$_++
的值仍为0. ++$_
的值为1.
然后,您添加两次$_
(1
),总共产生2次。
有关详细的增量前/增量后比较,请参阅this SO post。