Przykład na static w OOP w PHP
Załóżmy, że mamy taką klasę User:
<?php
class User
{
public $name;
public function __construct($name)
{
$this->name = $name;
}
}
?>
Zróbmy tak, aby ta klasa zliczała
liczbę swoich obiektów. W tym celu utwórzmy
statyczną właściwość count. Początkowo
zapiszmy w niej wartość 0, a przy tworzeniu
każdego nowego obiektu zwiększajmy
tę wartość o 1.
Będziemy zwiększać wartość naszego licznika w konstruktorze obiektu:
<?php
class User
{
public static $count = 0; // licznik obiektów
public $name;
public function __construct($name)
{
$this->name = $name;
// Zwiększamy licznik przy tworzeniu obiektu:
self::$count++;
}
}
?>
Sprawdźmy, czy wszystko działa:
<?php
$user1 = new User('user1');
echo User::$count; // wyświetli 1
$user2 = new User('user2');
echo User::$count; // wyświetli 2
?>
Uczyń nasz licznik prywatnym. Niech jego wartość można uzyskać za pomocą specjalnej metody.