Pavyzdys su static OOP PHP

Tarkime, kad turime šią User klasę:

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

Padarykime taip, kad ši klasė skaičiuotų savo objektų kiekį. Tam padarykime statinę savybę count. Pradžioje įrašykime į ją reikšmę 0, o kuriant kiekvieną naują objektą, didinkime šią reikšmę vienetu 1.

Objekto konstruktoriuje didinsime mūsų skaitiklio reikšmę:

User.php<?php
  class User
  {
    public static $count = 0; // objektų skaitiklis
    public $name;
    
    public function __construct($name)
    {
      $this->name = $name;
      
      // Didiname skaitiklį kuriant objektą:
      self::$count++;
    }
  }
?>

Patikrinkime, ar viskas veikia:

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

Padarykite mūsų skaitiklį privatų. Tegul jo reikšmę galima gauti naudojant specialųjį metodą.