: :

Cuidado

O seguinte é valido para o PHP 4 somente .

As vezes pode ser útil se referir a funções e variáveis na classe base ou referenciar funções em classes que não possuem qualquer instância . O operador : : pode ser utilizado nessas ocasiões .

 
class

 
A

 
{

 
function

 
exemplo(

 
)

 
    {

 
echo

 
"Eu

 
sou

 
a

 
função

 
original

 
A::exemplo()

 
.

 
br

 
\n"

 
;

 
    }

 
}

 
class

 
B

 
extends

 
A

 
{

 
function

 
exemplo(

 
)

 
    {

 
echo

 
"Eu

 
sou

 
a

 
função

 
redefinida

 
B::exemplo()

 
.

 
br

 
\n"

 
;

 
A::exemplo()

 
;

 
    }

 
}

 
/

 
/

 
Nao

 
ha

 
nenhum

 
objeto

 
da

 
classe

 
A

 
.

 
/

 
/

 
Isto

 
ira

 
imprimir

 
/

 
/

 
Eu

 
sou

 
a

 
função

 
original

 
A::exemplo()

 
.

 
br

 
A::exemplo()

 
;

 
/

 
/

 
cria

 
um

 
objeto

 
a

 
partir

 
da

 
classe

 
B

 
$b

 
=

 
new

 
B

 
;

 
/

 
/

 
Isto

 
ira

 
imprimir

 
/

 
/

 
Eu

 
sou

 
a

 
função

 
redefinida

 
B::exemplo()

 
.

 
br

 
/

 
/

 
Eu

 
sou

 
a

 
função

 
original

 
A::exemplo()

 
.

 
br

 
$b

 
-

 
exemplo()

 
;



O exemplo acima chama a função exemplo( ) da classe A , mas não nenhum objeto da classe A , então não podemos escrever $a - exemplo( ) ou qualquer coisa similar , Em vez disso , nós chamamos exemplo( ) como uma 'função de classe ' , ou seja , como uma função da classe propriamente dita , não qualquer objeto dessa classe .

Existem funções de classe , mas não variáveis de classe . De fato , não nenhum objeto durante toda a execução . Assim , uma função de classe não pode usar qualquer variável de objeto ( mas pode usar variáveis locais e globais ) , e nunca podendo utilizar-se de $this .

Ainda no exemplo acima , a classe B redefine a função exemplo( ) . A definição da função original na classe A é ocultada e nunca disponível , a não ser que você se referencie especificamente a implementação de exemplo( ) da classe A utilizando-se do operador :: . Escrevemos A::exemplo( ) para isso (de fato , você também pode escrever parent::exemplo() , como mostrado na próxima seção ) .

Nesse contexto , existe um objeto e ele pode ter variáveis de objeto . Assim , quando utilizado de DENTRO de uma função de objeto , você pode usar $this e variáveis de objeto .