Exemplu de static în OOP în PHP

Să presupunem că avem următoarea clasă User:

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

Să facem ca această clasă să numere numărul de obiecte ale sale. Pentru aceasta, vom crea o proprietate statică count. Inițial îi vom atribui valoarea 0, iar la crearea fiecărui obiect nou vom crește această valoare cu 1.

Vom crește valoarea contorului nostru în constructorul obiectului:

User.php<?php
  class User
  {
    public static $count = 0; // contor de obiecte
    public $name;
    
    public function __construct($name)
    {
      $this->name = $name;
      
      // Creștem contorul la crearea obiectului:
      self::$count++;
    }
  }
?>

Să verificăm dacă totul funcționează:

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

Faceți contorul nostru privat. Fie ca valoarea lui să poată fi obținută cu ajutorul unei metode speciale.