回答受付が終了しました

phpのインクリメントとデクリメントは既に学習して理解はしたつもりなのですが、下記の本に書かれている内容がなぜそうなるのかわかりません。

画像

PHP8閲覧xmlns="http://www.w3.org/2000/svg">50

回答(1件)

0

> 2行目で既に++$numがでてきているからですか? 大凡そういう事だけど、少しズレているから > なぜ三つ目は後置インクリメントであるにもかかわらず こういう疑問になるんじゃないかと 後置だろうが、前置だろうが、その違いが出るのはその変数を評価する時。 表示しようとしているのは演算結果が変数に格納された後の話だからです。 それぞれの演算は画像にもある通り 前置:「先に」演算をしてから代入 後置:代入した「後で」演算 しています。 スクリプトで書けば $b = ++$a; この1行は $a = $a + 1; $b = $a; と同じです。 同様に $d = $c++; は $d = $c; $c = $c +1; と同じです。 出力する時点ではこれらを処理し終わった後なので > 三つ目が8 となる訳です。