コンテンツへスキップ

七十の独習

オブジェクト指向 Work-1-4

前回はクラスを1つの独立したphpファイルに記述したが、関数については本体プログラムの中で定義していた。

今回は、関数の定義もクラスのメソッドで宣言する。

【例題1 店舗ごとの売上合計を計算する】
店舗名 ジャム ジュース ソース
本店 20000 18000 12000
支店 16000 14000 10000

クラスはプロパティとメソッドの集合体であるとのことだったが、前回作成したクラスにはプロパティ(変数)しかなかったので、今回はメソッドとして関数を追加する。

【クラスSumUrigaeのファイル】SumUrigae.php
  1. <?php
  2. //クラスの定義
  3. class SumUriage
  4. {
  5.     // プロパティの宣言
  6.     public $name = "";
  7.     public $jam = 0;
  8.     public $juice = 0;
  9.     public $souce = 0;
  10.     // メソッドの宣言
  11.     function printSum(string $name, int $jam, int $juice, int $souce): void
  12.     {
  13.         $sum = $this->jam + $this->juice + $this->souce;
  14.         echo($this->name."の売上合計は: ".$sum."円です。"."<br>");
  15.     }
  16. }
  17. ?>
【クラスで計算もしてしまうオブジェクト指向】sample1-4.php
  1. <?php
  2. //クラスの呼び出し
  3. require_once("SumUriage.php");
  4. //インスタンスを格納
  5. $honten = new SumUriage();
  6. $honten->name = "本店";
  7. $honten->jam = 20000;
  8. $honten->juice = 18000;
  9. $honten->souce = 12000;
  10. $honten->printSum($honten->name,$honten->jam,$honten->juice,$honten->souce);
  11. $siten = new SumUriage();
  12. $siten->name = "支店";
  13. $siten->jam = 16000;
  14. $siten->juice = 14000;
  15. $siten->souce = 10000;
  16. $siten->printSum($siten->name,$siten->jam,$siten->juice,$siten->souce);
  17. ?>
【実行結果】

本店の売上合計は50000円です。
支店の売上合計は40000円です。

前回では26行あった本体プログラムを19行に減らすことができた。削減率27%で、本体プログラムもすっきりして、見やすくなった。

小さなプログラムではあまりメリットは感じないが、大きなプログラムになると、メリットは大きいかもしれない。

今回で、一応クラスとインスタンスの基礎の基礎の段階は終了。

次回から、販売管理システムに必要なデータベースの操作の基礎の基礎に入る。

ホーム » 七十歳からの独習 オブジェクト指向 work-1-4

七十歳からの独習 オブジェクト指向 work-1-4