【PHP】代入演算子の書き方と使い方の基本
PHPにおける代入演算子の基本を解説する記事です。変数に値を格納する「=」の使い方から、計算と代入を同時に行う「+=」などの複合代入演算子の書き方を、豊富なコード例を交えて学びます。合計金額の算出といった実践的な演習を通して、PHPでの効率的な値の操作方法を習得し、システムエンジニアとしての基礎を固めます。
開発環境
- OS: Windows10
- Editor: Visual Studio Code
- PHP: 8.0以降
PHPの代入演算子とは
プログラミングにおいて、値を保存したり、後で使えるようにしたりする際に「代入」という操作を行います。PHPにおける代入演算子は、その名の通り、値を代入するための記号です。
代入演算子は「=」で左辺に右辺を代入することができます。 これは、数学の「等しい」という意味とは異なり、「右側にある値を、左側で指定した場所に格納する」という役割を持ちます。
具体的には、以下のように使用します。
1<?php 2$price = 100; // 変数$priceに「100」という値を代入します 3echo $price; // 出力: 100 4 5$item_name = "リンゴ"; // 変数$item_nameに「リンゴ」という文字列を代入します 6echo $item_name; // 出力: リンゴ 7 8$quantity = 5; 9$total_items = $quantity; // 変数$quantityの値(5)を変数$total_itemsに代入します 10echo $total_items; // 出力: 5 11 12// 変数の値は再代入することで更新されます 13$price = 200; // $priceの値を100から200に更新します 14echo $price; // 出力: 200 15?>
上記の例では、$priceや$item_nameといった「変数」に、それぞれ100や"リンゴ"といった「値」を代入しています。代入演算子=の左側には値を受け取る変数、右側には代入したい値を記述します。
複合代入演算子は「=」と他の演算子を組み合わせて左辺に右辺を代入することができます。 これは、変数自身に対して計算を行い、その結果を再び同じ変数に代入したい場合に、より簡潔に記述するための演算子です。
例えば、「現在の値に何かを足す」という操作を考えてみましょう。 通常の代入演算子を使うと以下のようになります。
1<?php 2$count = 10; 3$count = $count + 5; // $countの現在の値(10)に5を足し、その結果(15)を$countに再代入します 4echo $count; // 出力: 15 5?>
これを複合代入演算子を使うと、以下のように書くことができます。
1<?php 2$count = 10; 3$count += 5; // $countの現在の値に5を足し、その結果を$countに再代入します。上記の「$count = $count + 5;」と同じ意味です 4echo $count; // 出力: 15 5?>
このように、+=は「左辺の値に右辺の値を足し、その結果を左辺に代入する」という操作を意味します。
PHPには、他にも様々な複合代入演算子があります。主なものを以下に示します。
| 複合代入演算子 | 意味 | 通常の記述 |
|---|---|---|
+= | 加算して代入 | $a = $a + $b; |
-= | 減算して代入 | $a = $a - $b; |
*= | 乗算して代入 | $a = $a * $b; |
/= | 除算して代入 | $a = $a / $b; |
%= | 剰余(余り)を代入 | $a = $a % $b; |
.=` | 文字列を連結して代入 | $a = $a . $b; |
これらの演算子を使うことで、コードが短くなり、可読性が向上します。
1<?php 2$score = 100; 3$score -= 30; // $scoreから30を引き、結果(70)を$scoreに代入します 4echo $score; // 出力: 70 5 6$price = 50; 7$price *= 2; // $priceに2を掛け、結果(100)を$priceに代入します 8echo $price; // 出力: 100 9 10$total_amount = 1000; 11$total_amount /= 2; // $total_amountを2で割り、結果(500)を$total_amountに代入します 12echo $total_amount; // 出力: 500 13 14$num = 10; 15$num %= 3; // $numを3で割った余り(1)を$numに代入します 16echo $num; // 出力: 1 17 18$message = "Hello"; 19$message .= " World!"; // $messageに" World!"を連結し、結果("Hello World!")を$messageに代入します 20echo $message; // 出力: Hello World! 21?>
代入演算子はPHPプログラミングの基本中の基本ですので、しっかりと理解して活用してください。
サンプルコード
php/chapter04/01.php
このコードは、プログラミングにおける基本的な「代入」の考え方を説明しています。
$a = 5; という行は、「変数 $a に数値の 5 を代入する」という意味です。数学の「等しい」とは異なり、右側の値(5)を左側の変数($a)に格納する操作だと理解してください。
echo は、指定した内容を画面に出力するための命令です。
.(ドット)は、文字列と変数の値を連結するために使用します。
\n は、改行を意味する特殊文字です。
01.php1<?php 2// 基本の代入演算子 3$a = 5; // 変数 $a に 5 を代入 4echo "\$a の値: " . $a . "\n"; // 出力: 5 5
php/chapter04/02.php
ここでは、複合代入演算子の一つである「加算代入演算子 +=」を説明しています。
$a += 3; という行は、「現在の $a の値に 3 を加算し、その結果を改めて $a に代入する」という意味です。
これは $a = $a + 3; と書くのと同じ処理ですが、+= を使うことでより簡潔に記述できます。
02.php1<?php 2// 複合代入演算子 3// 加算代入演算子(+=) 4$a = 5; 5$a += 3; // $a に 3 を加算し、その結果を $a に代入 6echo "\$a += 3 の結果: " . $a . "\n"; // 出力: 8 7
php/chapter04/03.php
このコードは、減算代入演算子 -= の使い方を示しています。
$a -= 2; という行は、「現在の $a の値から 2 を減算し、その結果を改めて $a に代入する」という意味です。
これは $a = $a - 2; と同じ処理です。
03.php1<?php 2// 減算代入演算子(-=) 3$a -= 2; // $a から 2 を減算し、その結果を $a に代入 4echo "\$a -= 2 の結果: " . $a . "\n"; // 出力: 3 5
php/chapter04/04.php
このコードは、乗算代入演算子 *= の使い方を示しています。
$a *= 4; という行は、「現在の $a の値に 4 を乗算し、その結果を改めて $a に代入する」という意味です。
これは $a = $a * 4; と同じ処理です。
04.php1<?php 2// 乗算代入演算子(*=) 3$a *= 4; // $a に 4 を乗算し、その結果を $a に代入 4echo "\$a *= 4 の結果: " . $a . "\n"; // 出力: 20 5
php/chapter04/05.php
このコードは、除算代入演算子 /= の使い方を示しています。
$a /= 2; という行は、「現在の $a の値を 2 で除算し、その結果を改めて $a に代入する」という意味です。
これは $a = $a / 2; と同じ処理です。
05.php1<?php 2// 除算代入演算子(/=) 3$a /= 2; // $a を 2 で除算し、その結果を $a に代入 4echo "\$a /= 2 の結果: " . $a . "\n"; // 出力: 2.5 5
php/chapter04/06.php
このコードは、剰余代入演算子 %= の使い方を示しています。
$a %= 3; という行は、「現在の $a の値を 3 で割った余りを改めて $a に代入する」という意味です。
これは $a = $a % 3; と同じ処理です。剰余演算子 % は、割り算の余りを求めるために使われます。
06.php1<?php 2// 剰余代入演算子(%=) 3$a %= 3; // $a を 3 で割った余りを $a に代入 4echo "\$a %= 3 の結果: " . $a . "\n"; // 出力: 2 5
php/chapter04/07.php
ここからは、複合代入演算子 += を用いた実践的な例として、商品の合計金額を計算するコードです。
$orders という変数は「配列」です。複数の商品データ(ここでは「商品名」と「価格」のセット)をまとめて格納するために使われます。
それぞれの要素はさらに配列になっており、'item' に商品名、'price' に価格が設定されています。
07.php1<?php 2// 合計金額を算出する練習問題 3// 注文一覧の配列 4$orders = [ 5 ['item' => '商品A', 'price' => 1000], 6 ['item' => '商品B', 'price' => 1500], 7 ['item' => '商品C', 'price' => 2000], 8 ['item' => '商品D', 'price' => 2500] 9]; 10
php/chapter04/08.php
$total = 0; という行は、合計金額を計算する前に、合計値を格納する変数 $total を 0 で初期化(最初の値を設定)しています。これにより、計算が始まる前の合計値が確実にゼロであることが保証されます。
08.php1<?php 2// 合計金額を格納する変数 3$total = 0; 4
php/chapter04/09.php
このコードは、foreach ループを使って、$orders 配列の各商品を一つずつ処理しています。
foreach ($orders as $order) は、「$orders 配列の中身を一つずつ取り出し、一時的に $order という変数に入れて、ループの中の処理を行う」という意味です。
ループの中にある $total += $order['price']; が重要な部分です。これは、現在処理している商品($order)の価格(['price'])を、これまでの合計金額 $total に加え、その新しい結果を再び $total に代入しています。
この処理が配列のすべての商品に対して繰り返されることで、最終的な合計金額が $total に計算されていきます。
09.php1<?php 2// foreach ループで各注文を回す 3foreach ($orders as $order) { 4 // 各注文の金額を合計金額に加算 5 $total += $order['price']; 6} 7
php/chapter04/10.php
最終的に、計算された合計金額が格納されている変数 $total の値を echo を使って画面に表示しています。
これにより、すべての商品の合計金額 7000円 が出力されます。
10.php1<?php 2// 合計金額を表示 3echo "合計金額: " . $total . "円\n"; // 7000円 4
おわりに
今回の記事では、PHPにおける値の操作の基本である「代入演算子」について深く学びました。 変数に値を格納する「=」の基本的な使い方から、計算と代入を同時に行える「+=」などの複合代入演算子の書き方を豊富なコード例で理解を深めました。 特に、合計金額の算出といった実践的な演習を通して、複合代入演算子がコードをより簡潔にし、効率的な値の操作に役立つことを実感いただけたかと思います。 これらの代入演算子はPHPプログラミングの基礎中の基礎であり、システムエンジニアとして効率的に開発を進めるための大切な一歩です。 本記事で得た知識を土台として、今後の学習に役立ててください。