整数代入の変数に対して加算代入演算子+=
を使用すると、加算結果が得られますが、左側のオペランドを同時に、右側のオペランドの値。加算代入は条件付きの内部に代入されません
この理解は間違っているように見えますが、私の質問です。
$itr = 10;
$incr = 10;
if ($itr += $incr > 10) { // evaluates as true...
echo $itr; // but value of $itr remains unchanged
}
なぜ20の代わりに10を出力するのですか?
同じことが三部形式を使用して行われます
echo ($itr += $incr > 10) ? $itr : 'neverhere'; // prints 10
// Note: I know that parentheses aren't really necessary here, it's just a personal practice.
何が起こっていますか?
編集:まあ、私は括弧で表現$itr += $incr
を周囲の見かけ上の問題が修正されていることが分かりました。それでも、なぜ非常に涼しいの適切な説明。事前に感謝します。
http://php.net/manual/en/language.operators.precedence.php –