Příklad na static v OOP v PHP
Předpokládejme, že máme tuto třídu User:
<?php
class User
{
public $name;
public function __construct($name)
{
$this->name = $name;
}
}
?>
Udělejme to, aby tato třída počítala
počet svých objektů. K tomu vytvoříme
statickou vlastnost count. Na začátku
do ní zapíšeme hodnotu 0 a při vytváření
každého nového objektu tuto hodnotu zvýšíme
o 1.
Hodnotu našeho čítače budeme zvyšovat v konstruktoru objektu:
<?php
class User
{
public static $count = 0; // čítač objektů
public $name;
public function __construct($name)
{
$this->name = $name;
// Zvyšujeme čítač při vytvoření objektu:
self::$count++;
}
}
?>
Ověřme, že vše funguje:
<?php
$user1 = new User('user1');
echo User::$count; // vypíše 1
$user2 = new User('user2');
echo User::$count; // vypíše 2
?>
Udělejte náš čítač privátním. Ať je jeho hodnotu možné získat pomocí speciální metody.