七十の独習
オブジェクト指向 Work-1-4
前回はクラスを1つの独立したphpファイルに記述したが、関数については本体プログラムの中で定義していた。
今回は、関数の定義もクラスのメソッドで宣言する。

【例題1 店舗ごとの売上合計を計算する】
店舗名 | ジャム | ジュース | ソース |
本店 | 20000 | 18000 | 12000 |
支店 | 16000 | 14000 | 10000 |
クラスはプロパティとメソッドの集合体であるとのことだったが、前回作成したクラスにはプロパティ(変数)しかなかったので、今回はメソッドとして関数を追加する。
【クラスSumUrigaeのファイル】SumUrigae.php
- <?php
- //クラスの定義
- class SumUriage
- {
- // プロパティの宣言
- public $name = "";
- public $jam = 0;
- public $juice = 0;
- public $souce = 0;
- // メソッドの宣言
- function printSum(string $name, int $jam, int $juice, int $souce): void
- {
- $sum = $this->jam + $this->juice + $this->souce;
- echo($this->name."の売上合計は: ".$sum."円です。"."<br>");
- }
- }
- ?>
【クラスで計算もしてしまうオブジェクト指向】sample1-4.php
- <?php
- //クラスの呼び出し
- require_once("SumUriage.php");
- //インスタンスを格納
- $honten = new SumUriage();
- $honten->name = "本店";
- $honten->jam = 20000;
- $honten->juice = 18000;
- $honten->souce = 12000;
- $honten->printSum($honten->name,$honten->jam,$honten->juice,$honten->souce);
- $siten = new SumUriage();
- $siten->name = "支店";
- $siten->jam = 16000;
- $siten->juice = 14000;
- $siten->souce = 10000;
- $siten->printSum($siten->name,$siten->jam,$siten->juice,$siten->souce);
- ?>
【実行結果】
本店の売上合計は50000円です。
支店の売上合計は40000円です。
前回では26行あった本体プログラムを19行に減らすことができた。削減率27%で、本体プログラムもすっきりして、見やすくなった。
小さなプログラムではあまりメリットは感じないが、大きなプログラムになると、メリットは大きいかもしれない。
今回で、一応クラスとインスタンスの基礎の基礎の段階は終了。
次回から、販売管理システムに必要なデータベースの操作の基礎の基礎に入る。