【PHP】Lesson1-4:演算子と四則演算の基本を身に着けよう

ながみえ

一つ前のレッスンでは データ型とキャスト について学習しました。

今回は 算術演算子 について見ていきましょう。

Lesson1:基礎文法編
 ・Lesson1-1:PHP学習の入り口|初めてコードを書いてみよう
 ・Lesson1-2:変数と定数を理解しよう
 ・Lesson1-3:データ型とキャストを理解しよう
 ・Lesson1-4:四則演算をしよう ◁今回はココ
 ・Lesson1-5:文字列を理解しよう
 ・Lesson1-6:文字列の連結と埋め込みを理解しよう
 ・Lesson1-7:乱数を生成しよう
 ・確認問題1-1:ランダムパスワードを生成しよう
Lesson2:制御構造編
Lesson3:関数編
Lesson4:データ構造編
Lesson5:クラス

<<前のページ

学習記事一覧

次のページ>>

PHPの四則演算入門|算術演算子の使い方

この記事ではPHPでよく使う算術演算子(+、−、×、÷など)や、インクリメント・デクリメントの使い方を初心者向けにわかりやすく解説します。

本記事を読むことで、数値の計算や値の増減など、プログラム内での基本的な数値操作が自在にできるようになります。

四則演算や演算子の基本を身につけて、実践的なPHPプログラミングの第一歩を踏み出しましょう!

算術演算子とは何か?|代表的な演算子一覧

PHPコード内で使用できる基本的な算術演算子は、以下の6種類があります。

演算子説明使用例結果
+加算3 + 25
-減算5 – 14
*乗算(掛け算)4 * 28
/除算(割り算)10 / 25
%剰余(余り)10 % 31
**累乗(べき乗)2 ** 38

これらの演算子は数学の基本的な計算に使用されます。

<?php
$a = 10;
$b = 3;

// 基本算術演算子の使用例
echo $a + $b . PHP_EOL;		// 変数aとbの加算結果をechoで出力: 13
echo $a - $b . PHP_EOL;		// 減算: 7
echo $a * $b . PHP_EOL;		// 乗算: 30
echo $a / $b . PHP_EOL;		// 除算: 3.333...
echo $a % $b . PHP_EOL;		// 剰余: 1
echo $a ** $b . PHP_EOL;	// べき乗: 1000

この例では、変数$a$bに数値を代入し、それらに基本算術演算子を適用しています。

なお、多くのプログラミング言語では整数と整数の除算結果は整数型として出力します(10÷3は3となる)が、PHPでは浮動小数点型となります。

それぞれの出力結果を確認してみましょう。

インクリメントとデクリメント演算子|数値の増減を簡単に

整数型の変数$aに1を足す、もしくは1を引く場合の基本的な書き方は以下の通りです。

$a = $a + 1	// 変数$aに、「変数$aに1を加えた値」を代入
$a = $a - 1	// 変数$aに、「変数$aから1を引いた値」を代入

ただしここで、PHPでは変数の値を1だけ増加または減少させる インクリメント演算子(++)デクリメント演算子(--) が使用できます。

変数$xを例に見てみましょう

演算子種類説明使用例挙動
++$ver前置インクリメント$x1増やしてから 使用echo ++$x;$x が 1増えた状態で表示される
$x++後置インクリメント$x使用したあと 1増やすecho $x++;表示後に $x が 1増える
--$x前置デクリメント$x1減らしてから 使用echo --$x;$x が 1減った状態で表示される
$x--後置デクリメント$x使用したあと 1減らすecho $x--;表示後に $x が 1減る

インクリメントとデクリメントの使用コード例は以下の通りです。

<?php
$a = 5;

// インクリメント演算子の例
echo ++$a . PHP_EOL; // 前置: 6(5に1を足してから出力)
echo $a++ . PHP_EOL; // 後置: 6(出力後、$a は 7 になる)

// デクリメント演算子の例
echo --$a . PHP_EOL; // 前置: 6(7から1を引いてから出力)
echo $a-- . PHP_EOL; // 後置: 6(出力後、$a は 5 になる)

インクリメント/デクリメント演算子は、今後学習するループ処理や数値カウントなどで非常に便利です。

代入演算子との組み合わせ方|コードを短く書くテクニック

算術演算子は、代入演算子(=)と組み合わせて使うことができます。

これにより変数の値を計算して同じ変数に代入する処理を簡略化できます。

演算子説明等価な式(意味)結果
+=加算代入$a += $b$a = $a + $b$a = 5; $a += 3;$a = 8
-=減算代入$a -= $b$a = $a - $b$a = 5; $a -= 2;$a = 3
*=乗算代入$a *= $b$a = $a * $b$a = 4; $a *= 2;$a = 8
/=除算代入$a /= $b$a = $a / $b$a = 10; $a /= 2;$a = 5

これらの使用例は以下の通りです。

<?php
$a = 10;

// 代入演算子と算術演算子の併用例
$a += 5; // 加算代入: $a は 15(10+5) になる
$a -= 3; // 減算代入: $a は 12(15-3) になる
$a *= 2; // 乗算代入: $a は 24(12*2) になる
$a /= 4; // 除算代入: $a は 6(12/4) になる
echo $a; // 出力結果は6

このように算術演算子と代入演算子を組み合わせることで、コードを簡潔に書けます。

まとめ|算術演算子・インクリメント・代入演算子の使い方とポイント

この記事では、PHPの基本となる算術演算子やインクリメント・デクリメント、さらに代入演算子の組み合わせテクニックについて解説しました。

これらをマスターすることで、計算処理や値の操作がより効率的に行えるようになります。

基礎をしっかり身につけて、次はさらに応用的なPHPプログラミングにもチャレンジしてみましょう!

// 上の2行は同じ意味!
$a = $a + 1
$a += 1
$a++
// 変数$aの値の変化は3行とも同じ!

演習問題|PHPで四則演算を実装してみよう

PHPで四則演算のプログラムを作成しましょう。

ユーザーが入力した2つの数値を使い、加算、減算、乗算、割り算、剰余計算を行います。

それぞれの計算結果を画面に表示してください。この問題を通じて、PHPの算術演算子の使い方を学びましょう。

この演習の要件

以下の要件に従ってコードを完成させてください。

  1. 入力:
    • 最初に、ユーザーから1つ目の数値を入力してもらうこと。
    • 次に、ユーザーから2つ目の数値を入力してもらうこと。
  2. 処理:
    • 加算: 足し算の結果を計算して表示すること。
    • 減算: 引き算の結果を計算して表示すること。
    • 乗算: 掛け算の結果を計算して表示すること。
    • 割り算: 割り算の結果を計算して表示すること。
    • 剰余: 割り算の余りを計算して表示すること。
  3. 出力:
    • 各演算の結果を画面に出力すること。
    • 出力結果はそれぞれの演算名と値を分かりやすく表示すること。

ただし、以下のような実行結果となること。

最初の数値を入力してください: 12
次の数値を入力してください: 5
足し算の結果: 17
引き算の結果: 7
掛け算の結果: 60
割り算の結果: 2.4
割り算の余り: 2

解き方のヒント

1からコードを組み立てることが難しい場合は、以下のヒントを開いて参考にしましょう。

Q
ヒント1【コードの構成を見る】

正解のコードは上から順に以下のような構成となっています。
(※下記の□はコード内のインデントを表しています)

1:「最初の数値を入力してください: 」と出力
2:標準入力から値を読み取り、整数にキャストして変数$input1に代入
3:「次の数値を入力してください: 」と出力
4:標準入力から値を読み取り、整数にキャストして変数$input2に代入
5:「足し算の結果: 」と、$input1と$input2の合計を出力
6:「引き算の結果: 」と、$input1と$input2の差を出力
7:「掛け算の結果: 」と、$input1と$input2の積を出力
8:「割り算の結果: 」と、$input1と$input2の商を出力
9:「割り算の余り: 」と、$input1と$input2の剰余を出力

Q
ヒント2【穴埋め問題にする】

以下のコードをコピーし、コメントに従ってコードを完成させて下さい。

<?php

// 最初の数値を入力
echo "最初の数値を入力してください: ";
$input1 = (int)fgets(STDIN); // 入力を整数型にキャスト

// 次の数値を入力
echo "次の数値を入力してください: ";
$input2 = (int)fgets(STDIN); // 入力を整数型にキャスト

// 足し算
/* 【穴埋め問題1】
ここに足し算の結果を計算し表示するコードを書いてください。
例: 「足し算の結果: 〇〇」のように出力すること。
*/

// 引き算
/* 【穴埋め問題2】
ここに引き算の結果を計算し表示するコードを書いてください。
例: 「引き算の結果: 〇〇」のように出力すること。
*/

// 掛け算
/* 【穴埋め問題3】
ここに掛け算の結果を計算し表示するコードを書いてください。
例: 「掛け算の結果: 〇〇」のように出力すること。
*/

// 割り算
/* 【穴埋め問題4】
ここに割り算の結果を計算し表示するコードを書いてください。
例: 「割り算の結果: 〇〇」のように出力すること。
*/

// 剰余
/* 【穴埋め問題5】
ここに剰余を計算し表示するコードを書いてください。
例: 「割り算の余り: 〇〇」のように出力すること。
*/

このヒントを見てもまだ回答を導き出すのが難しいと感じる場合は、先に正解のコードと解説を見て内容を理解するようにしましょう。

演習問題の答え合わせ

この問題の正解コードとその解説は以下の通りです。

クリックして開いて確認してください。

Q
正解コード
<?php

// 最初の数値を入力
echo "最初の数値を入力してください: ";
$input1 = (int)fgets(STDIN); // 入力を整数型にキャスト

// 次の数値を入力
echo "次の数値を入力してください: ";
$input2 = (int)fgets(STDIN); // 入力を整数型にキャスト

// 足し算
echo "足し算の結果: " ;
echo ($input1 + $input2) . PHP_EOL;

// 引き算
echo "引き算の結果: " ;
echo ($input1 - $input2) . PHP_EOL;

// 掛け算
echo "掛け算の結果: " ;
echo ($input1 * $input2) . PHP_EOL;

// 割り算
echo "割り算の結果: " ;
echo ($input1 / $input2) . PHP_EOL;

// 剰余
echo "割り算の余り: " ;
echo ($input1 % $input2) . PHP_EOL;
Q
正解コードの解説

コードをブロックごとに分割して解説します。

ユーザー入力の受け取り

echo "最初の数値を入力してください: ";
$input1 = (int)fgets(STDIN);

echo "次の数値を入力してください: ";
$input2 = (int)fgets(STDIN);
  • echo: ユーザーにメッセージを表示するために使います。ここでは数値の入力を求めるメッセージを表示しています。
  • fgets(STDIN): 標準入力からデータを取得します。ユーザーが入力した内容を受け取ります。
  • キャスト (int): 入力されたデータは文字列として処理されるため、整数型(int)に変換しています。この操作により四則演算に適した形式になります。

算術演算子を使った計算

以下のブロックでそれぞれの算術演算子の使用例を示します。

echo "足し算の結果: " ;
echo ($input1 + $input2) . PHP_EOL;
  • +: 足し算を行う算術演算子です。$input1$input2の和を計算しています。
  • . (ドット演算子): 文字列を結合する演算子です。計算結果とテキストを連結するのに使用します。
echo "引き算の結果: " ;
echo ($input1 - $input2) . PHP_EOL;

-: 引き算を行う算術演算子です。$input1から$input2を引いた結果を計算しています。

echo "掛け算の結果: " ;
echo ($input1 * $input2) . PHP_EOL;

*: 掛け算を行う算術演算子です。$input1$input2を掛けた結果を計算しています。

echo "割り算の結果: " ;
echo ($input1 / $input2) . PHP_EOL;
  • /: 割り算を行う算術演算子です。$input1$input2で割った結果を計算しています。
  • 注意: 割り算では、割る数が0の場合にエラーになることがあります。このコードでは、エラー回避の仕組みはありません。
echo "割り算の余り: " ;
echo ($input1 % $input2) . PHP_EOL;

%: 剰余(余り)を計算する算術演算子です。$input1$input2で割った余りを計算しています。

もっと分かりやすい学習サイトにするために

この記事を読んで「ここが分かりにくかった」「ここが難しかった」等の意見を募集しています。

世界一わかりやすいPHP学習サイトにするため、ぜひ 問い合わせフォーム からご意見下さい。

<<前のページ

学習記事一覧

次のページ>>

記事URLをコピーしました