这可能是一个可笑的“问题”,但我只是不明白这种行为的原因。
事实:
$i++;
返回当前值,然后将 $i 加一。
++$i;
将 $i 加一,然后返回 $i。
情况:
for($i = 0; $i < 10; ++$i){
echo $i."\n";
}
给
0
1
2
3
4
5
6
7
8
9
第二:
for($i = 0; $i < 10; $i++){
echo $i."\n";
}
也给
0
1
2
3
4
5
6
7
8
9
如果我从字面上理解增量的文档,我将按如下方式解释循环:
- 在每次迭代结束时,$i 加一然后返回,所以我们首先得到一个 0,因为 $i 从 0 开始,然后是 1,依此类推。
- 在每次迭代结束时,返回 $i 然后递增,这意味着有两次迭代 $i = 0。
事实并非如此。有人可以解释一下,为什么?