PHPにおけるOOPでのstaticの使用例

次のような User クラスがあるとします:

User.php<?php
  class User
  {
    public $name;
    
    public function __construct($name)
    {
      $this->name = $name;
    }
  }
?>

このクラスが自身のオブジェクト数をカウントできるようにしましょう。そのために、静的プロパティ count を作成します。最初に値 0 を代入し、新しいオブジェクトが作成されるたびにこの値を 1 ずつ増やしていきます。

オブジェクトのコンストラクタ内でカウンターの値を増加させます:

User.php<?php
  class User
  {
    public static $count = 0; // オブジェクトカウンター
    public $name;
    
    public function __construct($name)
    {
      $this->name = $name;
      
      // オブジェクト作成時にカウンターを増加:
      self::$count++;
    }
  }
?>

すべてが機能することを確認しましょう:

index.php<?php
  $user1 = new User('user1');
  echo User::$count; // 1を出力
  
  $user2 = new User('user2');
  echo User::$count; // 2を出力
?>
Задание 1

私たちのカウンターをプライベートにしてください。 その値は、特別なメソッドを通じてのみ取得できるようにします。