ООП да PHP да static мисоли
Фарз қилайлик, бизда 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 ни чиқаради
?>
Бизнинг ҳисоблагчимизни приват қилинг. Унинг қиймати махсус метод орқали олинсин.