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>