Beispiel für static in OOP in PHP

Angenommen, wir haben folgende Klasse User:

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

Lassen Sie uns diese Klasse so modifizieren, dass sie die Anzahl ihrer Objekte zählt. Dazu erstellen wir eine statische Eigenschaft count. Initial weisen wir ihr den Wert 0 zu, und bei der Erstellung jedes neuen Objekts erhöhen wir diesen Wert um 1.

Wir werden den Wert unseres Zählers im Konstruktor des Objekts erhöhen:

User.php<?php
  class User
  {
    public static $count = 0; // Objektzähler
    public $name;
    
    public function __construct($name)
    {
      $this->name = $name;
      
      // Zähler bei Objekterstellung erhöhen:
      self::$count++;
    }
  }
?>

Prüfen wir, ob alles funktioniert:

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

Machen Sie unseren Zähler privat. Sein Wert soll über eine spezielle Methode abrufbar sein.