Príklad na static v OOP v PHP

Majme takúto triedu User:

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

Urobme to tak, aby táto trieda počítala počet svojich objektov. Na to vytvoríme statickú vlastnosť count. Spočiatku do nej zapíšeme hodnotu 0 a pri vytvorení každého nového objektu budeme túto hodnotu zvyšovať o 1.

Hodnotu nášho počítadla budeme zvyšovať v konštruktore objektu:

User.php<?php
  class User
  {
    public static $count = 0; // počítadlo objektov
    public $name;
    
    public function __construct($name)
    {
      $this->name = $name;
      
      // Zvyšujeme počítadlo pri vytvorení objektu:
      self::$count++;
    }
  }
?>

Skontrolujme, že všetko funguje:

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

Urobte naše počítadlo privátnym. Hodnotu z neho nech je možné získať pomocou špeciálnej metódy.