コンテンツへスキップ

七十の独習

オブジェクト指向 Work-1-3(分割後)

前回のサンプルプログラムを1つのクラスを独立したphpファイルに記述し、本体プログラムと分離してみよう。

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

前回紹介したクラスのお作法に従ってみる。

  • クラス名はアルファベットの大文字で始める。
  • 1つのクラスは1つの独立したphpファイルに記述する。 クラスを記述する
  • phpファイルのファイル名は、「クラス名.php」とする。
【クラスUrigaeのファイル】Urigae.php
  1. <?php
  2. //クラスの定義
  3. class Uriage
  4. {
  5.     public $name = "";
  6.     public $jam = 0;
  7.     public $juice = 0;
  8.     public $souce = 0;
  9. }
  10. ?>
【クラスを使ったオブジェクト指向】sample1-3.php(修正後)
  1. <?php
  2. //クラスの呼び出し
  3. require_once("Uriage.php");
  4. //関数の定義
  5. function printSum(string $name, int $jam, int $juice, int $souce): void
  6. {
  7.     $sum = $jam + $juice + $souce;
  8.     echo($name."の売上合計は: ".$sum."円です。"."<br>");
  9. }
  10.  
  11. //インスタンスを格納
  12. $honten = new Uriage();
  13. $honten->name = "本店";
  14. $honten->jam = 20000;
  15. $honten->juice = 18000;
  16. $honten->souce = 12000;
  17. printSum($honten->name, $honten->jam, $honten->juice,$honten->souce);
  18. $siten = new Uriage();
  19. $siten->name = "支店";
  20. $siten->jam = 16000;
  21. $siten->juice = 14000;
  22. $siten->souce = 10000;
  23. printSum($siten->name, $siten->jam, $siten->juice,$siten->souce);
  24. ?>
【実行結果】

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

require_once(“Uriage.php”);
クラスファイルを読み込んで、

新しい用語「インスタンス

これがまたわかりにくいが、例によってネットで検索した結果を整理すると、以下のような関係かなと勝手に納得する。

  • PHPのクラスとはプロパティとメソッドの集合体であること。つまり定義をしているものであるから、実体はない。
  • インスタンスは、「new」キーワードでクラスのプロパティとメソッドの構造を引き継ぐが、アロー演算子(->)でそれぞれのプロパティやメソッドに値(?)を入れることができるので、実体がある。

今回は、前回のサンプルプログラムを1つのクラスを独立したphpファイルに記述し、本体プログラムと分離したのだが、このようにクラスを別ファイルで定義しておけば、本体プログラムが簡潔になりそうな気がする。

今回は関数はクラスの外で使ったが、次回はクラスのメソッドとして関数を宣言してみよう。

ホーム » 七十歳からの独習 オブジェクト指向 work-1-3(分割後)

七十歳からの独習 オブジェクト指向 work-1-3(分割後)