Exemple de static en POO en PHP

Supposons que nous ayons une classe User comme celle-ci :

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

Faisons en sorte que cette classe compte le nombre de ses objets. Pour cela, créons une propriété statique count. Initialement, donnons-lui la valeur 0, et à la création de chaque nouvel objet, nous augmenterons cette valeur de 1.

Nous augmenterons la valeur de notre compteur dans le constructeur de l'objet :

User.php<?php
  class User
  {
    public static $count = 0; // compteur d'objets
    public $name;
    
    public function __construct($name)
    {
      $this->name = $name;
      
      // On augmente le compteur à la création de l'objet :
      self::$count++;
    }
  }
?>

Vérifions que tout fonctionne :

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

Rendez notre compteur privé. Que sa valeur puisse être obtenue à l'aide d'une méthode spéciale.