ホームページ  >  記事  >  バックエンド開発  >  php_PHP チュートリアルの ++i と i++ の違いの比較

php_PHP チュートリアルの ++i と i++ の違いの比較

WBOY
WBOYオリジナル
2016-07-13 17:14:191167ブラウズ

++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 を新しい変数に割り当てます。

パフォーマンスの最適化

コードは次のとおりです方法 1:最初のメソッドと 2 番目のメソッドを比較してください。PHP では、最終的に実行されるのは OPCODE、つまり各行が opline であるためです
コードをコピー
$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

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/629024.html技術記事 ++i と i++ は変数に +1 を加えるために多くのプログラミングで使用されますが、これらの操作には順序の問題があります。 1. ++i の使用法 (a=++...)
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。