【PHP】算術演算 – 四則演算・剰余・累乗と計算の優先順位
PHPは足し算(加算)や引き算(減算)などの計算を行うことができます。
計算することを“算術演算”と呼び、ここではその方法について解説します。
検証環境
算術演算
算術演算は数値の計算のことです。
四則演算である加算(足し算)・減算(引き算)・乗算(掛け算)・除算(割り算)や余りを算出する剰余などの計算があります。
PHPで算術演算を行うには“算術演算子”を使います。
算術演算子
算術演算子は算術演算を表す記号です。
例えば加算を表す記号は+
であり、算術演算の各演算子は次のようになります。
演算 | 演算子 | 内容 | 例 |
---|---|---|---|
加算 | + |
左の値に右の値を足した数値 | 3 + 8 |
減算 | – |
左の値から右の値を引いた数値 | 5 – 3 |
乗算 | * |
左の値に右の値を掛けた数値 | 2 * 4 |
除算 | / |
左の値を右の値で割った数値 | 6 / 3 |
剰余 | % |
左の値を右の数値で割って余った数値 | 8 % 5 |
累乗 | ** |
左の値を右の値で累乗した数値 | 11 ** 3 |
加算演算
加算演算は演算子の左の数値に右の数値を足した値を計算します。
基本構文
数値 + 数値
サンプル
<?php
___ih_hl_start
echo 3 + 8;
___ih_hl_end
?>
$ php sample.php
11
減算演算
減算演算は演算子の左の数値から右の数値を引いた値を計算します。
基本構文
数値 - 数値
サンプル
<?php
___ih_hl_start
echo 5 - 3;
___ih_hl_end
?>
$ php sample.php
2
乗算演算
乗算演算は演算子の左の数値に右の数値を掛けた値を計算します。
基本構文
数値 * 数値
サンプル
<?php
___ih_hl_start
echo 2 * 4;
___ih_hl_end
?>
$ php sample.php
8
除算演算
除算演算は演算子の左の数値を右の数値で割った値を計算します。
基本構文
数値 / 数値
サンプル
<?php
___ih_hl_start
echo 8 / 5;
___ih_hl_end
?>
$ php sample.php
1.6
剰余演算
剰余演算は演算子の左の数値を右の数値で割り時の余った値を計算します。
基本構文
数値 % 数値
サンプル
<?php
___ih_hl_start
echo 8 % 5;
___ih_hl_end
?>
$ php sample.php
3
累乗演算
累乗演算は演算子の左の数値を右の数値で累乗した値を計算します。
基本構文
数値 ** 数値
サンプル
<?php
___ih_hl_start
echo 10 ** 5;
___ih_hl_end
?>
$ php sample.php
100000
複数値の演算
複数値の演算は数学の数式と同様に、演算子で繋げることができます。
<?php
___ih_hl_start
echo 3 * 8 + 6 - 8;
___ih_hl_end
?>
$ php sample.php
22
演算の優先順位
演算には優先順位があり、次の順序で実行されます。
累乗(**) > 乗算(*) , 除算(/) > 剰余(%) > 加算(+) , 減算(-)
基本的には数学の数式と同じ順序です。
<?php
___ih_hl_start
echo 3 + 6 * 2 / 3 - 1;
___ih_hl_end
?>
$ php sample.php
6
また、演算の優先順位も数学の数式と同様に丸括弧(()
)で制御することができます。
<?php
___ih_hl_start
echo ( ( 3 + 6 ) * 2 ) / 3 - 1;
___ih_hl_end
?>
$ php sample.php
5
括弧内は優先的に計算され、ネスト(括弧内に括弧があること)している場合は一番内側の括弧から計算されます。
キャスト
プログラムでは2つの値の種類が異なる場合、演算することができません。
例えば、整数値と浮動小数点数の加算や整数値と文字列の掛け算などです。
通常、異なる値同士の演算を行うには値の種類を揃える必要があります。
しかし、PHPでは演算時に自動で値の種類を揃える仕組みがあるため、異なる種類同士の値でも正常に計算を行ってくれます。
<?php
echo 3 * '10';
?>
$ php sample.php
30
例では'10'
は文字列ですが、演算時に整数値として扱うよう変換されています。
このように種類を変換することをキャストと呼びます。
キャストについては型の知識が必要なため、割愛させていただきます。
演習問題
次の実行結果になるプログラムを作成してください。
なお、次の条件を満たすものとします。
- 整数値
3
と8
を加算する - 1の結果を
echo
で出力する
$ php sample.php
11
次の実行結果になるプログラムを作成してください。
なお、次の条件を満たすものとします。
- 整数値
25
から7
を減算する - 1の結果を
echo
で出力する
$ php sample.php
18
次の実行結果になるプログラムを作成してください。
なお、次の条件を満たすものとします。
- 整数値
11
に3
を乗算する - 1の結果を
echo
で出力する
$ php sample.php
33
次の実行結果になるプログラムを作成してください。
なお、次の条件を満たすものとします。
- 整数値
15
を4
で除算する - 1の結果を
echo
で出力する
$ php sample.php
3.75