0

时间:2015-10-28 20:33:32

标签: php

我最近出现了这个剧本:

$i = 0;
$x = $i++; $y = ++$i;
print $x; print $y; 

输出为02。我可以想象,$i ++的{​​+ 1}}在+1时为+1,但为什么$y输出为2?为什么不输出1101

1 个答案:

答案 0 :(得分:2)

后增量与预增量。

发布:结尾$i++表示返回$i,然后递增。

Pre:Preceding ++$i表示$i递增并返回结果。

因此$x设置为0$i的初始值),然后递增。 $i现在等于1。然后$i再次递增到2,该值在$y中设置。最后,$x=0$y=2以及$i=2。您的代码可以重写为:

$i=0;
//x, post increment, set x to i then increment after.
$x=$i;
$i=$i+1;

//y, pre increment, increment first and then set y to i.
$i=$i+1;
$y=$i;

同样的事情适用于减量运算符--$i$i--