【PHP】インクリメント(++)/デクリメント(–) – 値を1つ増減させる演算子について解説

PHPに限らずプログラミング言語には様々な演算子があります。
今回はその内のインクリメントとデクリメントと呼ばれる演算子について解説します。

★ 目的

  • インクリメントを使えるようになる。
  • デクリメントを使えるようになる。

インクリメント・デクリメントとは

インクリメント・デクリメントとは数値型(整数型/浮動小数点数型)の変数に記憶された値を『1』だけ加算・減算することです。

そして、『1』だけ加算する演算子をインクリメント演算子、『1』だけ減算する演算子をデクリメント演算子と呼びます。

インクリメント・デクリメントの構文

インクリメント・デクリメントの構文は次のようになります。

インクリメントの構文

++変数
または
変数++

デクリメントの構文

--変数
または
変数--

いずれも変数に、プラス(+)もしくはマイナス(-)を2つ繋げて記述します。

変数の前後どちらでも付けることができますが、前か後ろかでプログラムの処理順序が変わってきます。

次の項目で実際にプログラムを動かした結果で、その処理の違いを確認してきましょう。

実際にプログラムで確認する

それでは実際にインクリメント・デクリメントを使うと『1』だけ値が加減されるのか、前と後ろで処理が変わるのかをプログラムで確認してみましょう。

インクリメントの確認

インクリメント(前置)

ソースコード

<?php

// $xに10を代入
$x = 10;
// $xをインクリメント(前置)して出力
echo ++$x;

?>

実行結果

11

インクリメント(後置)

ソースコード

<?php

// $xに10を代入
$x = 10;
// $xをインクリメント(後置)して出力
echo $x++;

?>

実行結果

10

前置の方では$xの初期値10が代入されており、インクリメントして出力すると11になっているので、1加算されていることがわかります。

しかし、後置では$xの初期値がそのまま出力されており、加算されていないように見えます。
これは後置ではその行の一連の処理が実行されてから、加算する処理を行うためです。

つまり、後置では$xを出力してから、1を加算するという処理になります。
(逆に前置では$xに1を加算してから、出力するという処理です。)

このように前後によって処理順序が変わるので、しっかりと意図したプログラムを作れるよう覚えておきましょう。

デクリメントの確認

デクリメント(前置)

ソースコード

<?php

// $xに10を代入
$x = 10;
// $xをデクリメント(前置)して出力
echo --$x;

?>

実行結果

9

デクリメント(後置)

ソースコード

<?php

// $xに10を代入
$x = 10;
// $xをデクリメント(後置)して出力
echo $x--;

?>

実行結果

10

デクリメントもインクリメント同様に前後によって処理が変わり、こちらは$xから『1』だけ減算していることが分かります。

まとめ

インクリメント・デクリメントについて解説しました。

この演算子は繰り返し処理(for/foreach/while)と合わせて使うことが多い演算子なりますので、是非習得してみてください。