【PHP】数値の演算(四則演算・剰余・累乗)- 計算の優先順位についても解説

プログラムでは数値の演算(四則演算・剰余・累乗)を扱えます。
日常生活で料金やポイント、スコアなど数値の演算は多くあり、その分プログラムでも使う場面は多くあります。

ここでは初心者向けに数値の演算(四則演算・剰余・累乗)について解説します。

★ 内容

  • 数値の演算
  • 演算(加算・減算・乗算・除算・剰余・累乗)
  • 計算の優先順位

数値の演算とは

数値の演算は加算(足し算)や減算(引き算)のような計算のことです。

演算は演算子を使います。
それぞれの演算子は次の通りです。

演算演算子計算
加算+左の値に右の値を足した数値3 + 8
減算左の値から右の値を引いた数値5 – 3
乗算*左の値に右の値を掛けた数値2 * 4
除算/左の値を右の値で割った数値6 / 3
剰余%左の値を右の数値で割って余った数値8 % 5
累乗**左の値を右の値で累乗した数値11 ** 3

加算

基本構文

数値 + 数値

サンプルコード

ソースコード

<?php

$num = 3 + 8;

echo $num;

?>

実行結果

11

減算

基本構文

数値 - 数値

サンプルコード

ソースコード

<?php

$num = 5 - 3;

echo $num;

?>

実行結果

2

乗算

基本構文

数値 * 数値

サンプルコード

ソースコード

<?php

$num = 2 * 4;

echo $num;

?>

実行結果

8

除算

基本構文

数値 / 数値

サンプルコード

ソースコード

<?php

$num = 6 / 3;

echo $num;

?>

実行結果

2

剰余

基本構文

数値 % 数値

サンプルコード

ソースコード

<?php

$num = 8 % 5;

echo $num;

?>

実行結果

3

累乗

基本構文

数値 ** 数値

サンプルコード

ソースコード

<?php

$num = 11 ** 3;

echo $num;

?>

実行結果

1331

複数の値の演算

複数の値の演算は数学の数式のように数値を演算子で繋げながら記述します。

サンプルコード

ソースコード

<?php

$num = 3 + 6 * 2 / 3 - 1;

echo $num;

?>

実行結果

6

演算の優先順位

演算は数学と同様に優先順位があり、次の順序で実行されます。

累乗(**) > 乗算(*) , 除算(/) > 剰余(%) > 加算(+) , 減算(-)

また、演算の順序を丸括弧で任意に変えることもできます。

サンプルコード

ソースコード

<?php

$num = ( ( 3 + 6 ) * 2 ) / 3 - 1;

echo $num;

?>

実行結果

5

括弧内は優先的に計算さ、ネスト(括弧内に括弧があること)している場合は一番内側の括弧から計算されます。

演算と型

本来、整数型と浮動小数点数型、文字列型など異なる型の値同士では演算することができません。
計算するためにはキャストで型を合わせる必要があります。

しかし、PHPでは自動で型変換する『暗黙のキャスト』と呼ばれる仕組みがあります。
これにより異なる型の値同士でも自然に演算を行うことができます。

サンプルコード

ソースコード

<?php

$num = 5 * 1.3;

echo '5    (type)  -> '.gettype(5)."\n";
echo '1.3  (type)  -> '.gettype(1.3)."\n";
echo '$num (type)  -> '.gettype($num)."\n";
echo '$num (value) -> '.$num."\n";

?>

実行結果

5    (type)  -> integer
1.3  (type)  -> double
$num (type)  -> double
$num (value) -> 6.5

3行目で整数型の5と浮動小数点数型の1.3を乗算しており、実行結果では乗算した値の型は浮動小数点数型(double)になっていることが分かります。

演習問題

問題1

解答例

次の実行結果になるプログラムを作成してください。
なお、下記の条件を満たすものとします。

  • $numに11,33,55を加算した値を代入
  • 実行結果の99は$numの値として出力

実行結果

$num = 99

問題2

解答例

次の実行結果になるプログラムを作成してください。
なお、下記の条件を満たすものとします。

  • $numに11から33,55を減算した値を代入
  • 実行結果の-77は$numの値として出力

実行結果

$num = -77

問題3

解答例

次の実行結果になるプログラムを作成してください。
なお、下記の条件を満たすものとします。

  • $numに11,33,55を乗算した値を代入
  • 実行結果の19965は$numの値として出力

実行結果

$num = 19965

問題4

解答例

次の実行結果になるプログラムを作成してください。
なお、下記の条件を満たすものとします。

  • $numに11を2で除算し、更に4で除算した値を代入
  • 実行結果の19965は$numの値として出力

実行結果

$num = 1.375

問題5

解答例

次の実行結果になるプログラムを作成してください。
なお、下記の条件を満たすものとします。

  • $numに135を33で除算した余りを代入
  • 実行結果の3は$numの値として出力

実行結果

$num = 3

問題6

解答例

次の実行結果になるプログラムを作成してください。
なお、下記の条件を満たすものとします。

  • $numに2を11で累乗した値を代入
  • 実行結果の2048は$numの値として出力

実行結果

$num = 2048

まとめ

数値の演算には演算子と呼ばれる記号を使用します。
頻繁に使用するので、覚えていきましょう。