Пример за static в ООП в PHP
Да предположим, че имаме следния клас User:
<?php
class User
{
public $name;
public function __construct($name)
{
$this->name = $name;
}
}
?>
Нека направим така, че този клас да брои
броя на своите обекти. За целта ще създадем
статично свойство count. Първоначално
ще запишем в него стойност 0, а при създаване
на всеки нов обект ще увеличаваме
тази стойност с 1.
Ще увеличаваме стойността на нашия брояч в конструктора на обекта:
<?php
class User
{
public static $count = 0; // брояч на обекти
public $name;
public function __construct($name)
{
$this->name = $name;
// Увеличаваме брояча при създаване на обект:
self::$count++;
}
}
?>
Да проверим дали всичко работи:
<?php
$user1 = new User('user1');
echo User::$count; // ще изведе 1
$user2 = new User('user2');
echo User::$count; // ще изведе 2
?>
Направете нашия брояч приватно свойство. Нека стойността му да може да се получава чрез специален метод.