$a=1;
$b=$a+$a++;
$b=$a+$a++;
出力が常に 3 になるのはなぜですか?
ディスカッションへの返信 (解決策)
$b = 2; $a = $b += 3; // $a = ($b += 3) -> $a = 5, $b = 5
// ++ と + を混合すると未定義の動作が発生します
$a = 1 ;
echo ++$a + $a++; // 4 または 5 を出力する可能性があります
http://cn2.php.net/manual/zh/ language.operators.increment.php
< php
$a = 3 * 3 % 5; // (3 * 3) % 5 = 4
$a = true ? 1 : 2; // (true ? 0 : true) ? 2
$a = 1;
$a = $b += 3; // $a = ($b += 3) -> // ++ と + を組み合わせると未定義の動作が発生します
$a = 1;
echo ++$a + $a++; // 4 または 5 が出力される可能性があります ?> あなたの答えは私の質問に関連していますか?
公式は + と ++ が同時に存在する場合、結果は定義されないと述べています。
Windows バージョンの php 5.3.x では、結果は 3、$a は 2 になります
http://cn2.php.net/manual/zh/ language.operators.increment.php
$a = 3 * 3 % 5; // (3 * 3) % 5 = 4
$a = true ? 1 : 2; // (true ? 0 : true) ?
$a = 1;
$b = 2; // $a = ($b += 3) -> $b = 5
/ / ++ と + を混合すると未定義の動作が発生します
echo ++$a + $a++; // 4 または 5 が出力される可能性があります
?> あなたの答えは私の質問に関連していますか?
http://cn2.php.net/manual/zh/ language.operators.increment.php
$a = 3 * 3 % 5 // (3 * 3) % 5 = 4;
$a = true ? 0 : true ? 1 : 2;
$a = 1;
$a = $b += 3; // $a = ($b += 3) -> $a = 5, $b = 5
// ++ と + を混合すると未定義の動作が発生します
$a = 1; + $a++; // 4 または 5 が表示される場合があります
?> あなたの答えは私の質問に関連していますか?
上記は PHP アクセス ドキュメントからの抜粋です。赤いテキストは質問に対する回答です。
++ と + を混合すると未定義の動作が生成されます
++ と + を混合すると未定義の動作が生成されます
したがって、それについて議論する必要はありません
よく見てなくてごめんなさい
公式は + と ++ が同時に存在する場合、結果は定義されないと言っています。
現在、php 5.3.x Windows のバージョンでは、結果は 3、$a は 2 です。
http://cn2.php.net/manual/zh/ language.operators.increment.php
< ?php
$a = 3 * 3 % 5; // (3 * 3) % 5 = 4
$a = true ? 1 : 2; // (true ? 1 : 2) = 2
$a = 1;
$a = $b += 3; // $a = ($b += 3) ->
// ++ と + を混合すると未定義の動作が発生します
$a = 1;
echo ++$a + $a++; // 4 または 5 が出力される可能性があります
?> あなたの答えは私の質問に関連していますか?