Exemple de static en POO en PHP
Supposons que nous ayons une classe User comme celle-ci :
<?php
class User
{
public $name;
public function __construct($name)
{
$this->name = $name;
}
}
?>
Faisons en sorte que cette classe compte
le nombre de ses objets. Pour cela, créons
une propriété statique count. Initialement,
donnons-lui la valeur 0, et à la création
de chaque nouvel objet, nous augmenterons
cette valeur de 1.
Nous augmenterons la valeur de notre compteur dans le constructeur de l'objet :
<?php
class User
{
public static $count = 0; // compteur d'objets
public $name;
public function __construct($name)
{
$this->name = $name;
// On augmente le compteur à la création de l'objet :
self::$count++;
}
}
?>
Vérifions que tout fonctionne :
<?php
$user1 = new User('user1');
echo User::$count; // affichera 1
$user2 = new User('user2');
echo User::$count; // affichera 2
?>
Rendez notre compteur privé. Que sa valeur puisse être obtenue à l'aide d'une méthode spéciale.