2017-05-24 4 views
1

PHPのインクリメント演算子に予期せぬ問題があります。与えられた二つのプログラムを見てみてください:PHPのインクリメント演算子の問題に直面

第一プログラム:

<?php 
    $a=5; 
    $a++; 
    echo $a; 
?> 

を、それは私が明確に何が起こったことを理解され、印刷し、それだけで1

で値をインクリメント

第二プログラム:

<?php 
    $a=5; 
    $b = $a++;  // just assigned incremented value to a new variable b. 
    echo $b; 
?> 

それは印刷します。

ここで混乱していますが、変数にインクリメントされた値を割り当てたので、6を印刷する必要があります。なぜ5を印刷するのですか?

+1

[参照 - PHPでこのシンボルの意味は?](https://stackoverflow.com/q/3737139/6521116) –

+0

この第2のシナリオでは、増分しない値は$ aが$ bに代入されるように扱われます。値は5です。 – RaMeSh

+0

'$ a ++'は、最初に式の値を使用してから自動インクリメントを使用します。 '++ $ a'は自動的にインクリメントされ、式の値が使われます。 –

答えて

1

あなたは5を取得しています。なぜなら、後置演算子ではまず、値がインクリメントされた後に$ bに値が割り当てられるからです。最初の$ aは、$ aの値がインクリメントされたあと$ bに代入されます

関連する問題