Esempio sull'uso di static in OOP in PHP

Supponiamo di avere questa classe User:

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

Facciamo in modo che questa classe conti il numero dei suoi oggetti. Per fare ciò, creiamo una proprietà statica count. Inizialmente inseriamo il valore 0, e alla creazione di ogni nuovo oggetto aumenteremo questo valore di 1.

Aumenteremo il valore del nostro contatore nel costruttore dell'oggetto:

User.php<?php
  class User
  {
    public static $count = 0; // contatore oggetti
    public $name;
    
    public function __construct($name)
    {
      $this->name = $name;
      
      // Aumentiamo il contatore alla creazione dell'oggetto:
      self::$count++;
    }
  }
?>

Verifichiamo che funzioni tutto:

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

Rendete privato il nostro contatore. Fate in modo che il suo valore possa essere ottenuto tramite un metodo apposito.