Classes e Objetos (PHP 4)
PHP Manual

Operador de resolução de escopo (::)

Cuidado

Isto é válido somente para o PHP 4 e versões posteriores.

Algumas vezes é útil se referir a funções e variáveis declarados na classe base, ou se referir a funções em classes que ainda não possuem instâncias. O operador :: é utilizado para isso.

<?php
class {
    function 
example() {
        echo 
"Eu sou o método original A::example().<br />\n";
    }
}

class 
extends {
    function 
example() {
        echo 
"Eu sou o método redefinido B::example().<br />\n";
        
A::example();
    }
}

// Não existe um objeto da classe A mas ainda sim o método 
// será executado e imprimirá
// Eu sou o método original A::example().<br />
A::example();

// Criando um objeto da classe B.
$b = new B;

// Isto irá imprimir
//   Eu sou o método redefinido B::example().<br />
//   Eu sou o método original A::example().<br />
$b->example();
?>

O exemplo acima chama o método example() presente na classe A, mas não existe um objeto instanciado da classe A, desse modo nós não podemos escrever $a->example(). Ao invés disso chamamos example() como uma 'função de classe', ou seja, como uma função da própria classe e não de algum objeto (instância) da classe.

Existem 'funções de classe' mas não existem 'variáveis de classe'. De fato, não existe nenhum objeto no momento da chamada. Assim, a 'função de classe' não pode utilizar-se de nenhuma das variáveis (propriedades) da classe (mas pode utilizar-se variáveis locais ou globais) e não pode possuir chamadas utilizando $this.

No exemplo acima, a classe B redefine a função example(). A definição original presente na classe A é sobrescrita e não está mais disponível, a não ser que você se refira explicitamente à implementação de example() na classe A utilizando o operador ::. Escreva A::example() para fazer isto (de fato, você poderia utilizar parent::example(), como demonstrado na seção seguinte).

Neste contexto, existe um objeto corrente e este pode possuir variáveis. Assim, quando utilizado dentro de um método de um objeto, você pode utilizar $this bem como as variáveis de objeto.


Classes e Objetos (PHP 4)
PHP Manual