クラスプロパティとクラスメソッド

クラスプロパティ

個々のインスタンスではなくクラスで管理するプロパティ(ex:インスタンスの数など)。
public(private) static プロパティ

<?php
class Menu {
  private $name;
  private $price;

  // クラスプロパティはstaticをつける
  private static $count = 0;
}
?>
クラスプロパティへのアクセス

クラス::$プロパティでクラスプロパティにアクセスできる。

<?php echo Menu::$count ?>

クラスメソッド

インスタンスを生成せず直接クラスから呼び出すメソッド。クラスプロパティにアクセスするなど。 public(private) static メソッド

<?php
class Menu

  // クラスプロパティと同様staticをつける
  // クラスメソッド内でクラスプロパティにアクセスするときはself
  public static function getCount() {
    return self::$count;
  }
}
?>
コンストラクタを利用したクラスプロパティへのアクセス

クラスメソッドと同様selfでアクセスする。

<?php
  public function __construct($name, $price, $image) {
    $this->name = $name;
    $this->price = $price;
    $this->image = $image;

    // インスタンス作成時にインスタンス数を+1する
    self::$count++;
    
  }
?>