【第五回】PHPでシステム開発を実践!基本的な構文②

はじめに

前回の記事では、echoという文字などを出力する関数を取り上げました。
こちらで指定した文を出力させるというものでしたが、今度はPHP側で処理したものを表示させてみます。

その1つの例として指定した計算式をPHP側で計算し、その結果を表示(出力)するというものを取り上げていきます。

計算機能

計算機能についてですが、そもそもPHP関係なくコンピューターは計算が得意です。
計算式に基づいて複雑なプログラムを動かすということもでき、よく使います。
ただいきなり複雑な計算機能について取り上げましても難しくて分かりませんので、今回は単純な四則演算(足し算、引き算、掛け算、割り算)を出力する機能について取り上げたいと思います。

計算結果を出力しますので、今回もechoを使っていきます。
簡単ですので、ここはさくさくと確認していきましょう。

足し算

足し算の方法ですが、足し算の計算式で使用するのは+(プラス)です。
こちらはコンピューターでも同様に+を使います。
まずは試しに

<?php echo 1+1; ?>

と入力してみましょう。
ここで注意していただきたいのは、echo以降の部分はクォーテーション記号で囲まないようにします。
PHP足し算
上書き保存をし、ブラウザで表示を確認してみます。
すると以下画像のように2と表示されているかと思います。
PHP足し算結果
こちらは先ほど入力したecho以降の1+1を計算した結果が表示されています。

ここで1+1をシングルクォーテーションで囲んでみましょう。

<?php echo ‘1+1’; ?>
PHP足し算文字列
そしてブラウザで表示を確認してみますと先ほどと違い1+1と表示されます。
PHP足し算文字列結果
このことよりecho以降の引数をクォーテーション記号で囲みますと文字列として表示されますが、クォーテーション記号を付けないと計算式として認識され、計算結果が表示されます。
以上のことを踏まえてechoを使いましょう。

引き算

引き算は、-(マイナス)を使用しますが、コンピューターでも同様に-を使います。
こちらも足し算と同様、echo以降にクォーテーション記号で囲まず計算式を入力します。

試しに

<?php echo 10-5; ?>

と入力してみます。
PHP引き算
上書き保存をしてブラウザで表示を確認してみましょう。
5と表示されていましたら正しくプログラムが動いていることになります。
PHP引き算結果
こちらも引数をクォーテーション記号で囲んでしまいますと文字列として認識され、ブラウザには10-5と表示されます。

掛け算

掛け算ですが、通常ですと×を使いますが、コンピューターでは動きません。
コンピューター上で掛け算をする場合は*(アスタリスク)を使います。

試しに

<?php echo 3*10; ?>

と入力してみます。
PHP掛け算
上書き保存してブラウザの表示を確認してみますと30と表示されているかと思います。
こちらは先ほど入力しました3*10で、3×10の計算が行われた結果となります。
PHP掛け算結果
こちらも引数をクォーテーション記号で囲んでしまいますと文字列として認識され、ブラウザには3*10と表示されます。

割り算

割り算では通常ですと÷を使いますが、こちらも掛け算と同様にコンピューターでは動きません。
コンピューター上で割り算をする場合は/(スラッシュ)を使います。

試しに

<?php echo 10/2; ?>

と入力してみます。

PHP割り算
上書き保存してブラウザの表示を確認してみますと5と表示されているかと思います。
PHP割り算
こちらも引数をクォーテーション記号で囲んでしまいますと文字列として認識され、ブラウザには10/2と表示されます。

剰余

割り算は割り切れず、余りが出ることがあります。
その余りを出す方法もあり、コンピューター上では%(パーセンテージ)を使います。

例えば9÷2の余りは、9÷2=4余り1となりますね。
この余りのことを剰余といい、その余りをコンピューター上で出したいときは

<?php echo 9%2; ?>

と入力します。
PHP剰余
上書き保存してブラウザの表示を確認してみますと1と表示されているかと思います。
PHP剰余
こちらもおまけとして頭の片隅に入れておいて下さいますと良いかと思います。

小数点

上記のように計算した際に計算結果が小数点になることがありますが、3.3333333…など無限小数になることもあります。
その際に略して結果を表示したい時に使う「切り上げ」、「切り下げ」、「四捨五入」の方法について触れていこうと思います。

以下では先ほど出てきました割り算を使い、結果として出た数値をそれぞれどのように表示させるか<?php echo 10/3; ?>を例に行っていきます。

ceil

まずは「切り上げ」からです。
「切り上げ」とは整数部の数値を1つ繰り上げて、小数点以下を全て0(切り捨てる)にします。
例えば3.2222…という結果になった場合は整数部である3を1つ繰り上げて、小数点以下は0になりますので4となります。
この「切り上げ」を行いたい場合はceilというファンクション(関数)を使います。

試しに

<?php echo ceil(10/3); ?>

と入力してみましょう。
PHP切り上げ
上書き保存してブラウザの表示を確認してみますと4と表示されているかと思います。
PHP切り上げ
ここで使用しているceilは整数部を1つ繰り上げて小数点以下は0(切り捨てる)にするファンクションでして、例では10/3をceilで囲むことにより10÷3の計算結果である3.33333….の整数部が4となり小数点以下は0となりました。

参考:ceil

floor

次に「切り下げ」とは、小数点以下を切り捨てるという意味でして、例えば3.6666…という結果になった場合は小数点以下を切り捨てて3となります。
この際に使用するのがfloorというファンクション(関数)です。

試しに

<?php echo floor(10/3); ?>

と入力してみましょう。
PHP割り切れない割り算
上書き保存してブラウザの表示を確認してみますと3と表示されているかと思います。
PHP切り捨て
ここで使用しているfloorは小数点の付いた数値の切り捨てを行うためのファンクションでして、例では10/3をfloorで囲むことにより10÷3の計算結果である3.333333….の小数点以下を切り捨てて3としています。

参考:floor

round

最後に「四捨五入」についてです。
「四捨五入」とは、指定部分の桁数が4以下であれば切り捨て、5以上であれば左隣の数値を1つ繰り上げます。

学校で学習する所なので皆さんご存じだと思いますが、例えば3.456という数値があり小数点第二位を四捨五入する場合は小数点第二位は5なので1つ繰り上げとなり3.5となります。

このように「四捨五入」を行いたい場合はroundというファンクション(関数)を使います。

試しに

<?php echo round(10/3); ?>

と入力してみましょう。
PHP四捨五入
上書き保存してブラウザの表示を確認してみますと3と表示されているかと思います。
PHP四捨五入
ここで使用しているroundは四捨五入するファンクションで、上記の例のようにroundで囲んだ計算式の結果を四捨五入します。
そのままroundを囲みますと小数点第一位を四捨五入しますので、結果は整数となります。

もし四捨五入したい所を指定したい場合は、カッコ内の計算式の右隣にカンマ区切りで数値を指定します。
例えば小数点第二位で四捨五入したい場合は、

<?php echo round(10/3,1); ?>

と入力します。

この時注意して頂きたいのが、小数点第二位の時に1を指定し、小数点第三位の時は2という風に位の数より1つ小さい数を指定します。

こちら小数点の時だけでなく整数の時でも使用することが出来ます。

例えば

<?php echo round(12345,-1); ?>

と入力します。
PHP整数の四捨五入
整数の場合は、四捨五入する桁数をマイナスの数値でしますと右から数えた桁数で四捨五入します。
上書き保存してブラウザの表示を確認してみますと12350と表示されているかと思います。
PHP整数の四捨五入

参考:round
参考:PHP 四捨五入/切り上げ/切り捨てのサンプル
参考:PHPで四捨五入、切り捨て、切り上げする方法を現役エンジニアが解説【初心者向け】

まとめ

今回は、数値の計算や端数処理について取り上げました。
理解しやすく簡単な計算を例にそれぞれの方法について記載しましたが、実際はプログラムを動かすために難しい計算式を使う場合があります。

上記で取り上げました計算は、基本中の基本ですので、よく覚えておきましょう。

この記事をシェアしましょう!