PHPの算術演算子で四則演算をしよう
PHPには、数値同士の計算をするための「+」や「-」、条件の比較をするための「==」「!=」「AND」「OR」といったいろいろな記号を使います。
これらはまとめて演算子と呼びます。
今回のコラムではプログラムの基本となる計算を行うための演算子、算術演算子を使った、四則演算をしてみましょう。
目次 Table of Contents
算術演算子は数学の計算と同じ
算術演算子というとなんだか難しそうな感じがしますが、なんのことはありません。算数の「+」「-」「×」「÷」のことです。
ただし、数学の計算式とは書き方が異なるものもありますので注意しましょう。
以下はPHPの算術演算子の一覧表です。
演算子 | 書き方 | 役割 |
+ | $a + $b | $aに$bを足す |
- | $a - $b | $aから$bを引く |
* | $a * $b | $aに$bを掛ける |
/ | $a / $b | $aを$bで割る |
% | $a % $b | $aを$bで割った余り |
//
$sum = $num + 3;
$dif = $num - 4;
$prod = $num * 6;
$divi = $num / 2;
$divi2 = $divi / 3;
$surp = $num % 2;
//
echo $sum;
echo $dif;
echo $prod;
echo $divi;
echo $divi2;
echo $surp;
気をつけたいのは積・商・剰余を計算するときの記号です。数学の記号とは違いますね。
5という数値に対してそれぞれの計算をした結果を表示しています。
表示結果は以下のようになります。
1
30
2.5
0.83333333333333
1
5つ目の計算では2.5÷3をしていますので、割り切れません。
PHPの割り算では割り切れない場合、15桁まで表示するというシステム上のルールがあります。
この場合の変数$divi2は、数値型ではなく、浮動小数点型という型になります。
もしそのまま表示したら、画面上に3333333....と永遠に続きシステムがダウンしてしまいます。どこかで切る必要があるわけですね。
%は少し特殊ですが、割った余りを求めてくれます。
これが0になるならきれいに割り切れた、ということです。使えそうですね。
インクリメント演算子とデクリメント演算子
長ったらしい名前ですが、名前は覚えなくても大丈夫です。
ただWebプログラミングの中では使う場面が非常に多い便利な演算子です。
基本はある数値が代入された変数に対して、自動的に「1」を足す・「1」を引く、という計算をしてくれます。
それぞれ2パターンあるので押さえておきましょう。
演算子 | 名前 |
$a++ | 後置インクリメント |
$a-- | 後置デクリメント |
++$b | 前置インクリメント |
--$b | 前置デクリメント |
上の2つはどちらも$aに1を加え、下の2つは$bから1を減らします。
使い分けの違いは次のように計算式の中で使うとよくわかります。
$b = 5;
$c = 5;
$d = 5;
//
$result1 = 10 + $a++;
$result2 = 10 + $b--;
$result3 = 10 + ++$c;
$result4 = 10 + --$d;
//
echo $result1;
echo $a;
echo $result2;
echo $b;
echo $result3;
echo $c;
echo $result4;
echo $d;
計算結果と、その後の変数$a,$b,$c,$dの値を見てみます。
6
15
4
16
6
14
4
前置・後置どちらの場合も、その後の変数の値は「1増える」か「1減る」結果になります。6か4に変わっています。
違いは、式の中で使うときに、前置は先に増減を行い、後置は計算したあとで増減をするという点です。
いろいろな場面で活躍するインクリメント・デクリメントですが、主に後述するループ処理などで使うことが多いです。
ブログで言えば、該当カテゴリーの記事を最新のものから順に5つ表示する、というような場面です。
コメントフォーム
自分の勉強にもなりますので、コメントいただけるとうれしいです。