static-ის გამოყენების მაგალითი OOP-ში PHP-ში

დავუშვათ, გვაქვს User კლასი:

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

მოდით, ამ კლასს ვაჩვენოთ თავისი ობიექტების რაოდენობა. ამისთვის შევქმნათ სტატიკური თვისება count. თავდაპირველად მივანიჭოთ მნიშვნელობა 0, ხოლო ყოველი ახალი ობიექტის შექმნისას გავზარდოთ ეს მნიშვნელობა 1-ით.

ჩვენი თვლის მნიშვნელობის გაზრდა ობიექტის კონსტრუქტორში მოხდება:

User.php<?php
  class User
  {
    public static $count = 0; // ობიექტების თვლა
    public $name;
    
    public function __construct($name)
    {
      $this->name = $name;
      
      // ობიექტის შექმნისას თვლის გაზრდა:
      self::$count++;
    }
  }
?>

შევამოწმოთ, რომ ყველაფერი მუშაობს:

index.php<?php
  $user1 = new User('user1');
  echo User::$count; // გამოიტანს 1-ს
  
  $user2 = new User('user2');
  echo User::$count; // გამოიტანს 2-ს
?>
Задание 1

გახადეთ ჩვენი თვლა პრივატული. მისი მნიშვნელობის მიღება მოხდეს სპეციალური მეთოდის მეშვეობით.