【PHP】インクリメント(++) / デクリメント(–) – 変数の値を1変化させる
整数型や浮動小数点数型の変数の数値を1だけ変化させる演算があります。
ここではその演算であるインクリメントとデクリメントについて解説します。
検証環境
インクリメント
インクリメントは整数型や浮動小数点数型の変数の値を1
加算する演算です。
演算子(加算子)は++
で表し、前置加算子と後置加算子の2つの使い方があります。
この2つの違いはインクリメントの実行タイミングです。
前置加算子
前置加算子は対象変数の“値を1加算”した後に“値を参照”します。
基本構文
++変数
サンプル
<?php
$num = 10;
___ih_hl_start
$result = ++$num;
___ih_hl_end
echo '[ $num ] : ' . $num . "\n";
echo '[ $result ] : ' . $result . "\n";
?>
$ php sample.php
[ $num ] : 11
[ $result ] : 11
++$num
で前置加算子を使用しています。
5行目の処理は、初めに前置加算子によって$num
をインクリメントし、$num
の値が11
になります。
次に$num
の値(11
)を参照し、$result
に代入します。
実行結果から$num
と$result
の値は11
であることが分かります。
後置加算子
後置加算子は対象変数の“値を参照”した後に“値を1加算”します。
基本構文
変数++
サンプル
<?php
$num = 10;
___ih_hl_start
$result = $num++;
___ih_hl_end
echo '[ $num ] : ' . $num . "\n";
echo '[ $result ] : ' . $result . "\n";
?>
$ php sample.php
[ $num ] : 11
[ $result ] : 10
$num++
で後置加算子を使用しています。
5行目の処理は、初めに$num
の値(10
)を参照し、$result
に代入します。
次に後置加算子によって$num
をインクリメントし、$num
の値が11
になります。
実行結果から$result
の値は$num
をインクリメントする前の値である10
が記憶されたことが分かります。
このように前置と後置はいずれも変数の値をインクリメントしますが、前置は値を参照する前、後置は値を参照した後にインクリメントを実行します。
デクリメント
デクリメントは整数型や浮動小数点数型の変数の値を1
減算する演算です。
演算子(減算子)は--
で表し、前置減算子と後置減算子の2つの使い方があります。
この2つの違いはデクリメントの実行タイミングです。
前置減算子
前置減算子は対象変数の“値を1減算”した後に“値を参照”します。
基本構文
--変数
サンプル
<?php
$num = 10;
___ih_hl_start
$result = --$num;
___ih_hl_end
echo '[ $num ] : ' . $num . "\n";
echo '[ $result ] : ' . $result . "\n";
?>
$ php sample.php
[ $num ] : 9
[ $result ] : 9
--$num
で前置減算子を使用しています。
5行目の処理は、初めに前置減算子によって$num
をデクリメントし、$num
の値が9
になります。
次に$num
の値(9
)を参照し、$result
に代入します。
実行結果から$num
と$result
の値は9
であることが分かります。
後置減算子
後置減算子は対象変数の“値を参照”した後に“値を1減算”します。
基本構文
変数--
サンプル
<?php
$num = 10;
___ih_hl_start
$result = $num--;
___ih_hl_end
echo '[ $num ] : ' . $num . "\n";
echo '[ $result ] : ' . $result . "\n";
?>
$ php sample.php
[ $num ] : 9
[ $result ] : 10
$num--
で後置減算子を使用しています。
5行目の処理は、初めに$num
の値(10
)を参照し、$result
に代入します。
次に後置減算子によって$num
をデクリメントし、$num
の値が9
になります。
実行結果から$result
の値は$num
をデクリメントする前の値である9
が記憶されたことが分かります。
このように前置と後置はいずれも変数の値をデクリメントしますが、前置は値を参照する前、後置は値を参照した後にデクリメントを実行します。
処理早見表
前置加算子・後置加算子・前置減算子・後置減算子の処理早見表を用意しましたので、ご活用ください。
演算子 | 基本構文 | 加減算 | 値参照 |
---|---|---|---|
前置加算子 | ++変数 |
先 | 後 |
後置演算子 | 変数++ |
後 | 先 |
前置減算子 | --変数 |
先 | 後 |
後置演算子 | 変数-- |
後 | 先 |
演習問題
次の実行結果になるプログラムを作成してください。
なお、下記条件を満たすものとします。
$num
に10を代入する- 実行結果の数値は
$num
の値 $num
はインクリメントで加算する
14
次の実行結果になるプログラムを作成してください。
なお、下記条件を満たすものとします。
$num
に10を代入する- 実行結果の数値は
$num
の値 $num
はデクリメントで減算する
7