Combined Assignment
CoddyのPHPジャーニー「基礎」セクションの一部 — レッスン 18/71。
変数の現在の値に基づいて変数を更新する必要がある場合、PHP は 複合代入演算子 という省略形を提供します。変数名を2回書く代わりに、演算と代入を組み合わせることができます。
例えば、変数に10を加えるには:
<?php
$score = 50;
$score = $score + 10; // The long way
$score += 10; // The shorthand way
?>両方の行は同じことをしますが、+= のほうが短くてきれいです。このパターンはすべての算術演算子で動作します:
| 演算子 | 例 | 同等 |
+= | $x += 5 | $x = $x + 5 |
-= | $x -= 3 | $x = $x - 3 |
*= | $x *= 2 | $x = $x * 2 |
/= | $x /= 4 | $x = $x / 4 |
%= | $x %= 3 | $x = $x % 3 |
**= | $x **= 2 | $x = $x ** 2 |
<?php
$balance = 100;
$balance -= 25; // $balance は現在 75 です
$balance *= 2; // $balance は現在 150 です
echo $balance; // 出力: 150
?>チャレンジ
簡単入力から2つの数値を読み取ってください:開始値と調整量。
$total という名前の変数に開始値を格納します。次に、結合代入演算子を使用して以下の操作を実行します:
$totalに調整量を加算します$totalを 3 倍します$totalから 10 を減算します
$total の最終値を印刷します。
例:
入力が 20 と 5 の場合、出力は 65 になるはずです。理由は以下の通りです:
- 20 から開始し、5 を加算 → 25
- 3 倍 → 75
- 10 を減算 → 65
チートシート
PHP は、変数の現在の値に基づいて変数を更新するための省略形として、複合代入演算子 を提供します:
| 演算子 | 例 | 同等 |
+= | $x += 5 | $x = $x + 5 |
-= | $x -= 3 | $x = $x - 3 |
*= | $x *= 2 | $x = $x * 2 |
/= | $x /= 4 | $x = $x / 4 |
%= | $x %= 3 | $x = $x % 3 |
**= | $x **= 2 | $x = $x ** 2 |
<?php
$score = 50;
$score += 10; // Add 10 to $score
$score -= 5; // Subtract 5 from $score
$score *= 2; // Multiply $score by 2
?>自分で試してみよう
<?php
// 入力を読み込む
$startingValue = intval(fgets(STDIN));
$adjustmentAmount = intval(fgets(STDIN));
// 開始値を $total に格納する
$total = $startingValue;
// TODO: 以下にコードを記述してください
// 複合代入演算子を使用して以下を行ってください:
// 1. $total に調整額を加算する
// 2. $total を3倍にする
// 3. $total から10を減算する
// 結果を出力する
echo $total;
?>このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
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