++i と i++ は、変数に +1 を加えるために多くのプログラミングで使用されますが、順序に問題があります。操作上の違いをいくつか紹介します。
1. ++i の使い方 (a=++i, i=2 を例にします)
まず i の値に 1 を加算し (つまり、i=i+1)、それを変数 a に代入します (つまり、a=i)。
そして、最後の a 値は 3 に等しく、i 値は 3 に等しくなります。つまり、a=++i は i=i+1、a=i と同等です
2. i++ の使用法 (a=i++、i=2 を例にします)
まず i の値を変数 a に代入し (つまり、a=i)、次に i の値に 1 を加算します (つまり、i=i+1)。
そして、最後の a 値は 2 に等しく、i 値は 3 に等しくなります。
つまり、 a=i++ は a=i 、 i=i+1 と同等です
3、++i、i++
a=++i は i++ 、 a=i と同等です
a=i++ は a=i 、 i++ と同等です
4. ++i と i++ を単独で使用すると、i=i+1 と同等になります
新しい変数に割り当てられる場合、++i は最初に i の値に 1 を加算し、i++ は最初に i を新しい変数に割り当てます。
パフォーマンスの最適化
コードをコピー | |
$begin = 時間(); $i = 0; while(++$i { $j = 0; while(++$j ; ; } $end = 時間(); 時間: 16秒 方法 2: $begin = 時間(); $i = 0; while($i { $j = 0; while($j ++$j; ++$i; } $end = 時間(); 時間:13秒 方法 3: $begin = 時間(); $i = 0; while($i { $j = 0; while($j $j++; $i++; } $end = 時間(); 時間:15秒 方法 4: $begin = 時間(); $i = 0; while($i++ { $j = 0; while($j++ ; ; } $end = 時間(); 時間:13秒 |
オペランドは2つあり、オペランドには通常、一時変数、変数、コンパイル時変数の3種類があります
。その中で、最もアクセスが速い 3 番目のタイプは、OpCode の実行中に、変数と第 1 レベルの参照がハッシュに格納されます。
構造上、アクセスを高速化するために使用されます。http://www.bkjia.com/PHPjc/629024.html