Eksempel på static i OOP i PHP

La oss si at vi har følgende klasse User:

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

La oss gjøre slik at denne klassen teller antall av sine egne objekter. For å gjøre dette, lager vi en statisk egenskap count. Til å begynne med setter vi verdien til 0, og ved oppretting av hvert nytt objekt øker vi denne verdien med 1.

Vi skal øke verdien av telleren vår i objektets konstruktør:

User.php<?php
  class User
  {
    public static $count = 0; // objekt-teller
    public $name;
    
    public function __construct($name)
    {
      $this->name = $name;
      
      // Øker telleren ved oppretting av objekt:
      self::$count++;
    }
  }
?>

La oss sjekke at alt fungerer:

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

Gjør telleren vår privat. La dens verdi kunne hentes ved hjelp av en spesiell metode.