Esimerkki static:sta OOP:PHP:ssä

Oletetaan, että meillä on seuraava luokka User:

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

Tehdään luokasta sellainen, että se laskee omia olioitaan. Tätä varten teemme staattisen ominaisuuden count. Aluksi kirjoitamme siihen arvon 0, ja kun luomme jokaisen uuden olion, lisäämme tätä arvoa 1:llä.

Lisätään laskurimme arvoa olion konstruktorissa:

User.php<?php
  class User
  {
    public static $count = 0; // olioiden laskuri
    public $name;
    
    public function __construct($name)
    {
      $this->name = $name;
      
      // Lisää laskuria olion luonnissa:
      self::$count++;
    }
  }
?>

Tarkistetaan, että kaikki toimii:

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

Tee laskuristamme yksityinen. Sen arvoa voidaan saada erityisen menetelmän avulla.