++で足すと同時に代入した時の値

++で足すと同時に代入した時の値が、僕の予想と違ったのでメモ。

$num = 1;
$num_new = $num++;

echo $num;     // 2が表示される
echo $num_new; // 1が表示される
javascriptで見つけてPHPでも検証したら同じだった。

ちなみに
$num = 1;
$num_new = $num + 1;

echo $num;     // 1が表示される
echo $num_new; // 2が表示される
とこちらは予想通り。

今日始めて知ったけど、ちょっと間違えちゃいそうで怖いので使わないな。
これだから我流は怖い。

コメント

  1. tagawa 1970/01/01 09:00:00
    へー。

    演算子の優先順位かと思ったんですが、
    そうでもないですね。

    「++」の方が優先順位高かったです。

    右辺を処理してから代入しそうな気がしますね。
    僕も気をつけよっと。
  2. longkey1 1970/01/01 09:00:00
    プログラムやっている人にとっては当たり前なのかもね。
    サンプルで使われたし、PHPとjavascript多言語で通用するしね。
  3. halt 1970/01/01 09:00:00
    Cでもなんでもそうだと思います。知っておいたほうがいいですね。
    ちなみに
    $num_new = ++$num;
    とすると意図した動作になります。
  4. longkey1 1970/01/01 09:00:00
    うお!haltさんコメントありがとです。
    やはりそうなんですね。
    その口ぶりだと常識のようなので、覚えておきますw
    あざす!

アーカイブ

2012

  • 01
  • 02
  • 03
  • 04
  • 05
  • 06
  • 07
  • 08
  • 09
  • 10
  • 11
  • 12

2011

2010

2009

2008

2007

コンタクト

longkey1[at]gmail[dot]com