Ejemplo de static en POO en PHP
Supongamos que tenemos la siguiente clase User:
<?php
class User
{
public $name;
public function __construct($name)
{
$this->name = $name;
}
}
?>
Hagamos que esta clase cuente
el número de sus objetos. Para ello, crearemos
una propiedad estática count. Inicialmente
establezcamos su valor en 0, y al crear
cada nuevo objeto incrementaremos
este valor en 1.
Incrementaremos el valor de nuestro contador en el constructor del objeto:
<?php
class User
{
public static $count = 0; // contador de objetos
public $name;
public function __construct($name)
{
$this->name = $name;
// Incrementamos el contador al crear el objeto:
self::$count++;
}
}
?>
Comprobemos que todo funciona:
<?php
$user1 = new User('user1');
echo User::$count; // mostrará 1
$user2 = new User('user2');
echo User::$count; // mostrará 2
?>
Haga nuestro contador privado. Que su valor pueda obtenerse mediante un método especial.