私はPHPでいくつかの奇妙な計算を見つけました、例えばこれ:
$c=5;
$r = $c + ($c++ + ++$c);
echo $r;
結果が17ではなく19になるのはなぜですか?
ありがとう
結果は指定しないでください。次のPHP仕様をお読みください:https:
//github.com/php/php-langspec/blob/master/spec/10-expressions.md
優先順位、結合性、およびグループ化括弧は、演算子が適用される順序を制御しますが、用語自体の評価の順序は制御しません。この仕様で明示的に述べられていない限り、式のオペランドが相互に評価される順序は指定されていません。シーケンスポイントを含む演算子については、上記の説明を参照してください。(たとえば、完全な式$ list1 [$ i] = $ list2 [$ i ++]では、左側の$ iの値が古い$ iであるか新しい$ iであるかは指定されていません。同様に、完全に式$ j = $ i + $ i ++は、$ iの値が古い$ iであるか新しい$ iであるかに関係なく、指定されていません。最後に、完全な式f()+ g()* h()では、 3つの関数が呼び出されますが、指定されていません)。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加