Manual do PHP
Anterior | Capítulo 19. Classes e Objetos (PHP 5) | Próxima

# Palavra-Chave 'static'

Declarar membros ou métodos de uma classe como estáticos faz deles acessíveis sem precisar instanciar a classe. Um membro declarados como estático não pode ser acessado com um objeto instanciado da classe (embora métodos estáticos podem).

A declaraï¿½o static deve estar depois da declaraï¿½o de visibilidade. Por compatibilidade com o PHP 4, se nenhum declaraï¿½o de visibilidade for usada, entï¿½ o membro ou mï¿½odo serï¿½tratado como se fosse declarado como `public static`.

Como mï¿½odos estï¿½icos podem ser chamados sem uma instï¿½cia do objeto ter sido criada, a pseudo-variï¿½el `$this` nï¿½ ï¿½disponï¿½el dentro do mï¿½odo declarado como estï¿½ico.

De fato, chamadas a mï¿½odos `estï¿½icos` sï¿½ resolvidas em tempo de compilaï¿½o. Quando usando um nome de classe explï¿½ito o mï¿½odo jï¿½ï¿½identificado completamente e nenhuma das regras de heranï¿½ se aplicam. Se a chamada for feita por `self` entï¿½ `self` ï¿½traduzido para a classe atual, isso ï¿½ a classe ï¿½qual o cï¿½igo pertence. Aqui tambï¿½ nï¿½ se aplicam as regras de heranï¿½.

Propriedades estï¿½icas nï¿½ podem ser acessadas pelo objeto usando o operador seta ->.

Chamar mï¿½odos nï¿½ estï¿½icos de maneira estï¿½ica gera um aviso de nï¿½el E_STRICT.

Exemplo 19-14. Exemplo de membro estï¿½ico
`<?php class Foo { public static $meu_estatico = 'foo'; public function valorEstatico() { return self::$meu_estatico; } } class Bar extends Foo { public function fooEstatico() { return parent::$meu_estatico; } } print Foo::$meu_estatico . "\n"; $foo = new Foo(); print $foo->valorEstatico() . "\n"; print $foo->$meu_estatico . "\n"; // "Propriedade" Indefinida $meu_estatico // $foo::$meu_estatico nï¿½ ï¿½possï¿½el print Bar::$meu_estatico . "\n"; $bar = new Bar(); print $bar->fooEstatico() . "\n"; ?>`

Exemplo 19-15. Exemplo de mï¿½odo estï¿½ico
`<?php class Foo { public static function umMetodoEstatico() { // ... } } Foo::umMetodoEstatico(); ?>`

Anterior | Principal | Próxima
Operador de Resolução de Escopo (::) | Acima | Constantes do Objeto