Мисоли 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 -ро бароварда медиҳад
?>
Счётчики моро хусусӣ (private) кунед. Бигзор арзиши онро тавассути усули махсус ба даст овардан мумкин бошад.