これはおそらくばかげた「問題」ですが、この動作の理由がわかりません。
事実:
$i++;
現在の値を返し、$i を 1 増やします。
++$i;
$i を 1 増やしてから $i を返します。
状況:
for($i = 0; $i < 10; ++$i){
echo $i."\n";
}
与える
0
1
2
3
4
5
6
7
8
9
2番目:
for($i = 0; $i < 10; $i++){
echo $i."\n";
}
も与える
0
1
2
3
4
5
6
7
8
9
インクリメントのドキュメントをそのまま受け取るとしたら、次のようにループを説明します。
- 各反復の終わりに、$i は 1 ずつインクリメントされてから返されます。そのため、$i は 0 から始まったため、最初は 0 になり、次に 1 などになります。
- 各反復の終わりに、$i が返され、THEN がインクリメントされます。これは、正確には、$i = 0 の反復が 2 回あったことを意味します。
これが真実でないことは事実です。誰か説明してください、なぜですか?