Ejemplo de static en POO en PHP

Supongamos que tenemos la siguiente clase User:

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

Hagamos que esta clase cuente el número de sus objetos. Para ello, crearemos una propiedad estática count. Inicialmente establezcamos su valor en 0, y al crear cada nuevo objeto incrementaremos este valor en 1.

Incrementaremos el valor de nuestro contador en el constructor del objeto:

User.php<?php
  class User
  {
    public static $count = 0; // contador de objetos
    public $name;
    
    public function __construct($name)
    {
      $this->name = $name;
      
      // Incrementamos el contador al crear el objeto:
      self::$count++;
    }
  }
?>

Comprobemos que todo funciona:

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

Haga nuestro contador privado. Que su valor pueda obtenerse mediante un método especial.