【6日でできるPHP入門】インクリメント・デクリメント

 プログラムで繰り返しやカウントアップ、カウントダウンを行うときに便利なのが「インクリメント」と「デクリメント」です。
PHPでは、変数の値に1を足す(インクリメント)1を引く(デクリメント)ための特別な記法が用意されています。
この記事では、その使い方や特徴、注意点について具体的な例とともに詳しく解説します。

1.インクリメント・デクリメントの基本

1.1. インクリメント(++)

インクリメントとは、変数の値に1を加える処理です。
PHPでは、変数名の前後に++を付けることで、1回の記述で値を+1できます。

記述意味同じ処理の通常記法
$a++;$aの値に1を足す(後置)$a = $a + 1; または $a += 1;
++$a;$aの値に1を足す(前置)同上

サンプル1:インクリメントの利用例

ファイル名: lesson25_1.php

<?php
$count = 5;
echo "カウント: {$count}<br>"; // 5
$count++;
echo "カウント: {$count}<br>"; // 6
++$count;
echo "カウント: {$count}<br>"; // 7
?>

実行結果

1.2. デクリメント(--)

デクリメントとは、変数の値から1を引く処理です。
インクリメントと同じく、--を変数名の前後に付けます。

記述意味同じ処理の通常記法
$a--;$aの値から1を引く(後置)$a = $a - 1; または $a -= 1;
--$a;$aの値から1を引く(前置)同上

サンプル2:デクリメントの利用例

ファイル名: lesson25_2.php

<?php
$stock = 3;
echo "残り: {$stock}<br>"; // 3
$stock--;
echo "残り: {$stock}<br>"; // 2
--$stock;
echo "残り: {$stock}<br>"; // 1
?>

実行結果

2.前置・後置の違いと注意点

2.1. 前置(++$n / --$n)と後置($n++ / $n--)の動作

前置と後置は、式の中で使ったときに違いが出ます。

書き方意味
$x = ++$a;$aを先に+1して、その値を$xに代入
$x = $a++;$aの値を$xに代入し、その後$aを+1

サンプル3:前置・後置の違い

ファイル名: lesson25_3.php

<?php
$num = 4;
$result1 = ++$num; // numを+1した後に代入(num=5, result1=5)
$result2 = $num++; // まずnumの値を代入(result2=5)、その後num+1(num=6)
echo "result1: {$result1}, result2: {$result2}, num: {$num}";
?>

実行結果

解説

  • ++$numは、まずnumを+1した値が返る
  • $num++は、まず今のnumの値が返り、その後+1される

2.2. 変数展開における「$」の表示方法

 PHPでは、ダブルクォーテーション内で$\変数名と書くと変数の値が展開されますが、単に「$n」と表示したい場合は「$n」と「\」でエスケープします。

ファイル名: lesson25_4.php

<?php
$val = 8;
echo "\$val の値は {$val} です。";
?>

実行結果

3.実践例:インクリメント・デクリメントの連続利用

サンプル4:複数回の増減

ファイル名: lesson25_5.php

<?php
$score = 2;
echo "初期値: {$score}<br>";
$score++;
echo "1回目: {$score}<br>";
$score--;
echo "2回目: {$score}<br>";
$score += 2;
echo "3回目: {$score}<br>";
$score--;
echo "4回目: {$score}<br>";
?>

実行結果

まとめ

  • インクリメント(++)は変数の値を1増やす、デクリメント(--)は1減らす。
  • 前置・後置で式中の使い方に違いがあるので注意
  • 変数の値を簡潔に増減できるため、カウンタやループ処理で頻出
  • ダブルクォーテーション内で「$変数名」と書くと変数展開、単なる「$」を表示したい場合はエスケープ「$」を使う。

インクリメント・デクリメントを使いこなして、よりスマートなカウント処理を身につけましょう。