Contoh static dalam OOP di PHP

Misalkan kita memiliki kelas User seperti ini:

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

Mari kita buat kelas ini menghitung jumlah objeknya sendiri. Untuk melakukan ini, buatlah properti statis count. Awalnya tulis nilai 0 di dalamnya, dan saat membuat setiap objek baru, kita akan menambah nilai ini sebesar 1.

Kita akan menambah nilai penghitung kita di konstruktor objek:

User.php<?php
  class User
  {
    public static $count = 0; // penghitung objek
    public $name;
    
    public function __construct($name)
    {
      $this->name = $name;
      
      // Tingkatkan penghitung saat objek dibuat:
      self::$count++;
    }
  }
?>

Mari kita periksa apakah semuanya bekerja:

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

Buat penghitung kita menjadi privat. Biarkan nilainya bisa didapatkan menggunakan metode khusus.