PHP

on Note

算術演算子

「+」や「-」といった、四則演算に用いる演算子が算術演算子にあたります。数値の計算に用いる演算子です。

ここでは、算術演算子の種類を知って、各演算子はどんな働きをするのかを理解します。

+(プラス)加算を表す

+」の役割は次の2点です。

  • 「+a」は「a」の値を示す。
  • 「a + b」は加算を表しており、「a」と「b」を足した値を得る。
<?php
    $sample = +10;

    var_dump ($sample);
?>

「+10」を $sampleに代入しています。$sampleを var_dump()で出力すると次のように表示されます。

int(10)

次に加算を例にあげます。

<?php
    $total = 80 + 40;

    var_dump ($total);
?>

「80 + 40」の演算結果を $totalに代入します。var_dump()で $totalを出力すると次のように表示されます。

int(120)

ここで、演算での挙動を説明しておきます。

演算を行っても元の値は変わらない

「a」と「b」、2つの数値の演算を行って結果を得たとします。演算によって新たな値を得るわけですが、元の「a」と「b」の値はその後も変わりません

わかりやすく変数を用いて説明します。

<?php
    $total = 80 + 40;
    $result = $total - 5;

    var_dump ($result);
    var_dump ($total);
?>

「80 + 40」の演算結果を $totalに代入します。次の行で $totalから 5を引いてその結果を$resultに代入しています。

それぞれの変数を var_dump()で出力すると次のように表示されます。

int(115) int(120)

$totalから 5を引いたが、その後も $totalの値は変わりません。

オペレータとオペランド

演算子のことをオペレータとも言います。また、演算対象の値のことをオペランドと呼びます。

「2 + 5」であれば、「+」がオペレータ、「2」と「5」がオペランドです。

-(マイナス)減算を表す

-」の役割は次の2点です。

  • 「-a」は「a」の正負を反転した値を表す。
  • 「a - b」は減算を表しており、「a」から「b」を引いた値を得る。
<?php
    $sample = 10;
    $result = - $sample;

    var_dump ($sample);
    var_dump ($result);
?>

まず $sampleに 10を代入しています。10が入った $sampleに「-」を付けて、それを $resultに代入しています。

出力結果はそれぞれ次のようになります。

int(10) int(-10)

今度は $sampleに「-10」を代入しています。

<?php
    $sample = -10;
    $result = - $sample;

    var_dump ($sample);
    var_dump ($result);
?>

出力結果は次のようになります。

int(-10) int(10)

このように、「-」は値の正負を反転させます。

次が減算の場合です。

<?php
    $result = 80 - 40;

    var_dump ($result);
?>

出力結果は次のようになります。

int(40)

*(アスタリスク)乗算を表す

「a * b」では、aと bを掛けた値を得ます。「*」は乗算を行います。

<?php
    $result = 30 * 5;

    var_dump ($result);
?>

30に 5を掛けて、その結果を $resultに代入します。出力結果は次のようになります。

int(150)

/(スラッシュ)除算を表す

「a / b」では、aを bで割った値を得ます。「/」は除算を行います。

<?php
    $result = 30 / 5;

    var_dump ($result);
?>

30を 5で割って、その結果を $resultに代入します。出力結果は次のようになります。

int(6)

%(パーセント)剰余を表す

「a % b」では、aを bで割った時の、余りの値を得ます。「%」は剰余を示します。

<?php
    $result = 30 % 7;

    var_dump ($result);
?>

30を 7で割った時の、余りの値を $resultに代入します。出力結果は次のようになります。

int(2)

小数の剰余計算

剰余計算(余りを求める計算)の対象が、小数(小数点が付いた値)の場合、結果はどうなるのでしょうか。

オペランドが小数の場合の剰余計算は、まずオペランドを整数に直し、それから剰余計算が行われます。尚、整数に直す際、小数点以下は切り捨てになります。

例として、11.6 を 4.1 で割った時の余りを求めてみましょう。

<?php
    $result = 11.6 % 4.1;

    var_dump ($result);
?>

出力結果は次のようになります。

int(3)

「11.6 % 4.1」の場合、まずオペランドが整数に直されて「11 % 4」になり、結果の値は 3になるということです。

**(アスタリスク2個)累乗を表す

「a ** b」では、aの b乗の値を得ます。「**」は累乗を表します。

<?php
    $result = 2 ** 3;

    var_dump ($result);
?>

2の 3乗の値を $resultに代入します。出力結果は次のようになります。

int(8)

まとめ

算術演算子とは、四則演算といった数値計算に用いる演算子を言います。

各算術演算子の種類と、それぞれの働きは次の通りです。

+a
aの値。
a + b
aとbを足した値。
加算。
-a
aの正負を反転した値。
a - b
aからbを引いた値。
減算。
a * b
aにbを掛けた値。
乗算。
a / b
aをbで割った値。
除算。
a % b
aをbで割った時の余りの値。
剰余。
a ** b
aのb乗の値。
累乗。

小数の剰余計算では、先にオペランドが整数に直されます。(小数点以下は切り捨て)つまり小数の剰余計算であっても、整数の剰余計算に直されます。

演算を行っても、演算の材料となる元の値は変化しません

演算子のことをオペレータ、演算対象の値のことをオペランドという言い方もします。