Increment/Decrement
CoddyのPHPジャーニー「基礎」セクションの一部 — レッスン 19/71。
変数に対して正確に 1 を加算または減算する必要がある場合、PHP は複合代入よりもさらに短い方法を提供します:increment と decrement 演算子です。
インクリメント演算子(++)は変数に 1 を加算し、デクリメント演算子(--)は 1 を減算します:
<?php
$count = 5;
$count++; // $count is now 6
$count--; // $count is now 5 again
?>これらの演算子は変数の前または後に配置でき、それによって変更のタイミングが異なります:
<?php
$a = 5;
echo $a++; // Outputs: 5, then $a becomes 6
echo $a; // Outputs: 6
$b = 5;
echo ++$b; // $b becomes 6, then outputs: 6
?>$a++(後置インクリメント)の場合、元の値が最初に使用され、その後インクリメントされます。++$b(前置インクリメント)の場合、値が最初にインクリメントされ、その後使用されます。同じロジックが--(デクリメント)にも適用されます。
チャレンジ
簡単入力から数値を読み込み、$counter という変数に格納します。
以下の操作を順番に実行し、各 echo 文の結果を新しい行に印刷します:
$counter++の値を出力(後置インクリメント)- 現在の
$counterの値を出力 ++$counterの値を出力(前置インクリメント)$counterを--で減算(出力不要)- 最終的な
$counterの値を出力
例:
入力が 10 の場合、出力は次のようになります:
10
11
12
11説明:
- 後置インクリメントは 10 を出力し、その後
$counterは 11 になります - 現在の値は 11
- 前置インクリメントは
$counterを 12 にし、その後 12 を出力します - 減算により
$counterは 11 になります - 最終値は 11
チートシート
インクリメント演算子(++)は変数に 1 を加算し、デクリメント演算子(--)は 1 を減算します:
<?php
$count = 5;
$count++; // $count is now 6
$count--; // $count is now 5 again
?>これらの演算子は変数の前または後に配置できます:
- 後置インクリメント(
$a++):最初に元の値を使用し、その後インクリメントします - 前置インクリメント(
++$a):最初にインクリメントし、その後新しい値を使用します
<?php
$a = 5;
echo $a++; // Outputs: 5, then $a becomes 6
echo $a; // Outputs: 6
$b = 5;
echo ++$b; // $b becomes 6, then outputs: 6
?>デクリメント演算子(--)にも同じロジックが適用されます。
自分で試してみよう
<?php
// 入力を読み取る
$counter = intval(fgets(STDIN));
// TODO: 以下にコードを書く
// 1. $counter++ (後置インクリメント) の値を印刷する
// 2. $counter の現在の値を印刷する
// 3. ++$counter (前置インクリメント) の値を印刷する
// 4. -- を使用して $counter をデクリメント (印刷不要)
// 5. $counter の最終値を印刷する
?>このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
4Comparison & Logical Operators
Comparison OperatorsEquality & IdentityLogical Operators Part 1Logical Operators Part 2Recap - Simple Logic2Variables and Data Types
NumbersStrings and QuotesBooleansNaming ConventionsRecap - Variable InitEmpty VariablesString ConcatenationGetting User InputCast to Different Types3Basic Operators
Arithmetic OperatorsModulo OperatorExponentiation OperatorCombined AssignmentIncrement/DecrementOperator PrecedenceRecap - Simple CalculationsString Operators