PHPの変数の値が次のコードで一貫した動作をしないのはなぜですか?プリ/ポストインクリメント演算子が正しく動作しないのはなぜですか?
<?php
$piece = 10;
// output is 10 10 10 10 11 12
echo $piece . $piece . $piece . $piece++ . $piece . ++$piece;
$piece = 10;
// output is 10 10 10 11 12
echo $piece . $piece . $piece++ . $piece . ++$piece;
$piece = 10;
// output is 11 10 11 12
echo $piece . $piece++ . $piece . ++$piece;
?>
最後の例の最初の出力が11になるのはなぜですか?上記の2つの例のように10の代わりに。
増分/減算演算子:http://php.net/manual/en/language.operators.increment.php – solar411
@ solar411少し具体的なものを参照できますか? –
これはコードパッドです:http://codepad.org/gEoWxshO。非常に奇妙な振る舞い - 2番目のブロックのプリインクリメントが3番目のブロックの最初の '$ piece'で再び実行されるようなものです。あるいは、第3ブロックのポストインクリメントが原因かもしれません。この場合、例間の不一致は説明されません。 – halfer