Primer na static u OOP u PHP

Neka imamo ovakvu klasu User:

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

Hajde da omogućimo ovoj klasi da broji broj svojih objekata. Za ovo ćemo napraviti statičko svojstvo count. Inicijalno ćemo u njega upisati vrednost 0, a prilikom kreiranja svakog novog objekta ćemo povećavati tu vrednost za 1.

Vrednost našeg brojača ćemo povećavati u konstruktoru objekta:

User.php<?php
  class User
  {
    public static $count = 0; // brojač objekata
    public $name;
    
    public function __construct($name)
    {
      $this->name = $name;
      
      // Povećavamo brojač prilikom kreiranja objekta:
      self::$count++;
    }
  }
?>

Proverimo da li sve radi:

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

Učinite naš brojač privatnim. Neka se njegova vrednost može dobijati pomoću posebne metode.