PHP コンストラクタの活用
クラス内でクラスプロパティにアクセスする際は「self」という特殊な変数を用います。
selfは、クラスの中で使うとそのクラス自身のことを指し示し、「self::$クラスプロパティ名」のように使う。
$countのアクセス権をprivateにしましょう。するとクラスの外から$countにアクセスできなくなるので$countのゲッターを定義します。
$countのゲッターのように、個々のインスタンスのデータに関係ない処理を行いたい時には「クラスメソッド」を用います。クラスメソッドは「static」を用いて定義し、「クラス名::クラスメソッド名」のように呼び出します。
menu.php
--------
// クラスプロパティ$countのアクセス権をprivateに、初期値を数値の0にする
private static $count = 0;
public function __construct($name, $price, $image) {
$this->name = $name;
$this->price = $price;
$this->image = $image;
// クラスプロパティ$countの値に1を足し行く
self::$count++;
}
// getCountというクラスメソッドを追加
public static function getCount() {
return self::$count;
}
index.php
----------
<!-- Menuクラスに対してgetCountメソッドを呼び出して、クラスプロパティ$countを表示 -->
<h3>メニュー<?php echo Menu::getCount(); ?>品</h3>