PHPポストとプリインクリメント

NeroBuggy

私は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つの関数が呼び出されますが、指定されていません)。

PHPのドキュメントにも同じ理由があります。 ここに画像の説明を入力してください

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Javaのプリインクリメントとポストインクリメント

分類Dev

std :: atomic <int>でのプリインクリメントとポストインクリメント

分類Dev

Javaでのプリインクリメントとポストインクリメント

分類Dev

プレインクリメントとポストインクリメント-forループ速度

分類Dev

ポストインクリメント、プレインクリメント。JAVA

分類Dev

C ++でのポストインクリメントとプレインクリメントの効率

分類Dev

Javaでポストインクリメントとプレインクリメントを使用する場合

分類Dev

シーケンスポイントの観点からのプリインクリメントとポストインクリメント

分類Dev

OutputIteratorのプリ/ポストインクリメント演算子

分類Dev

ポストインクリメント

分類Dev

Swiftのプリインクリメントおよびポストインクリメント演算子

分類Dev

C ++ポストインクリメント:オブジェクトとプリミティブ型

分類Dev

ループ内のプリインクリメントとポストインクリメントの違いは?

分類Dev

ループ内のプリインクリメントとポストインクリメントの違いは?

分類Dev

ループ内のプリインクリメントとポストインクリメントの違いは?

分類Dev

forループでインクリメントされないポストインクリメント演算子

分類Dev

Javaポストインクリメントおよびプレインクリメント

分類Dev

Javaのポストインクリメントおよびプレインクリメントの動作

分類Dev

NextJS:メインとネクストスクリプト

分類Dev

プリインクリメントとポストインクリメントを含む関数の結果が異なります

分類Dev

Cでのプリインクリメントとポストインクリメントの組み合わせ

分類Dev

'for'ループ内のポストインクリメントとプレインクリメントは同じ出力を生成します

分類Dev

Cインクリメントポインタとfor()ループのパフォーマンス

分類Dev

ポストインクリメントとプレインクリメントの違い、実行中のコードは常に同じです

分類Dev

メトリックディメンションとしてスプリングブートエンドポイントパス変数を含める

分類Dev

インポートスクリプトを使用してインポートすると、メディアが正しくインポートされません

分類Dev

Jenkinsパイプラインスクリプトの承認のエクスポートとインポート

分類Dev

二重ポストインクリメントの結果-ifステートメントとその本体

分類Dev

ポインタ算術インクリメントポスト/プレフィックス

Related 関連記事

  1. 1

    Javaのプリインクリメントとポストインクリメント

  2. 2

    std :: atomic <int>でのプリインクリメントとポストインクリメント

  3. 3

    Javaでのプリインクリメントとポストインクリメント

  4. 4

    プレインクリメントとポストインクリメント-forループ速度

  5. 5

    ポストインクリメント、プレインクリメント。JAVA

  6. 6

    C ++でのポストインクリメントとプレインクリメントの効率

  7. 7

    Javaでポストインクリメントとプレインクリメントを使用する場合

  8. 8

    シーケンスポイントの観点からのプリインクリメントとポストインクリメント

  9. 9

    OutputIteratorのプリ/ポストインクリメント演算子

  10. 10

    ポストインクリメント

  11. 11

    Swiftのプリインクリメントおよびポストインクリメント演算子

  12. 12

    C ++ポストインクリメント:オブジェクトとプリミティブ型

  13. 13

    ループ内のプリインクリメントとポストインクリメントの違いは?

  14. 14

    ループ内のプリインクリメントとポストインクリメントの違いは?

  15. 15

    ループ内のプリインクリメントとポストインクリメントの違いは?

  16. 16

    forループでインクリメントされないポストインクリメント演算子

  17. 17

    Javaポストインクリメントおよびプレインクリメント

  18. 18

    Javaのポストインクリメントおよびプレインクリメントの動作

  19. 19

    NextJS:メインとネクストスクリプト

  20. 20

    プリインクリメントとポストインクリメントを含む関数の結果が異なります

  21. 21

    Cでのプリインクリメントとポストインクリメントの組み合わせ

  22. 22

    'for'ループ内のポストインクリメントとプレインクリメントは同じ出力を生成します

  23. 23

    Cインクリメントポインタとfor()ループのパフォーマンス

  24. 24

    ポストインクリメントとプレインクリメントの違い、実行中のコードは常に同じです

  25. 25

    メトリックディメンションとしてスプリングブートエンドポイントパス変数を含める

  26. 26

    インポートスクリプトを使用してインポートすると、メディアが正しくインポートされません

  27. 27

    Jenkinsパイプラインスクリプトの承認のエクスポートとインポート

  28. 28

    二重ポストインクリメントの結果-ifステートメントとその本体

  29. 29

    ポインタ算術インクリメントポスト/プレフィックス

ホットタグ

アーカイブ