Příklad na static v OOP v PHP

Předpokládejme, že máme tuto třídu User:

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

Udělejme to, aby tato třída počítala počet svých objektů. K tomu vytvoříme statickou vlastnost count. Na začátku do ní zapíšeme hodnotu 0 a při vytváření každého nového objektu tuto hodnotu zvýšíme o 1.

Hodnotu našeho čítače budeme zvyšovat v konstruktoru objektu:

User.php<?php
  class User
  {
    public static $count = 0; // čítač objektů
    public $name;
    
    public function __construct($name)
    {
      $this->name = $name;
      
      // Zvyšujeme čítač při vytvoření objektu:
      self::$count++;
    }
  }
?>

Ověřme, že vše 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

Udělejte náš čítač privátním. Ať je jeho hodnotu možné získat pomocí speciální metody.