Exemplo de static em POO em PHP
Suponha que temos a seguinte classe User:
<?php
class User
{
public $name;
public function __construct($name)
{
$this->name = $name;
}
}
?>
Vamos fazer com que esta classe conte
o número de seus objetos. Para isso, vamos criar
uma propriedade estática count. Inicialmente
vamos definir seu valor como 0, e na criação
de cada novo objeto vamos aumentar
esse valor em 1.
Vamos aumentar o valor do nosso contador no construtor do objeto:
<?php
class User
{
public static $count = 0; // contador de objetos
public $name;
public function __construct($name)
{
$this->name = $name;
// Aumentamos o contador ao criar o objeto:
self::$count++;
}
}
?>
Vamos verificar se está funcionando:
<?php
$user1 = new User('user1');
echo User::$count; // exibirá 1
$user2 = new User('user2');
echo User::$count; // exibirá 2
?>
Torne nosso contador privado. Deixe que seu valor possa ser obtido usando um método especial.