: :

Uwaga !

Poniższe dotyczy tylko PHP 4 .

Czasami dobrze jest odnosić się do funkcji i zmiennych w klasie bazowej lub odnosić się do funkcji i klas które nie mają jeszcze instancji . Służy do tego operator :: .

 
class

 
A

 
{

 
function

 
przyklad(

 
)

 
    {

 
echo

 
"Jestem

 
orginalną

 
funkcją

 
A::przyklad()

 
.

 
br

 
\n"

 
;

 
    }

 
}

 
class

 
B

 
extends

 
A

 
{

 
function

 
przyklad(

 
)

 
    {

 
echo

 
"Jestem

 
przedefiniowaną

 
funkcją

 
B::przyklad()

 
.

 
br

 
\n"

 
;

 
A::przyklad()

 
;

 
    }

 
}

 
/

 
/

 
nie

 
ma

 
obiektu

 
klasy

 
A

 
.

 
/

 
/

 
poniższe

 
wyświetli

 
/

 
/

 
Jestem

 
orginalną

 
funkcją

 
A::przyklad()

 
.

 
br

 
A::przyklad()

 
;

 
/

 
/

 
stwórz

 
nowy

 
obiekt

 
klasy

 
B

 
.

 
$b

 
=

 
new

 
B

 
;

 
/

 
/

 
poniższe

 
wyświetli

 
/

 
/

 
Jestem

 
przedefiniowaną

 
funkcją

 
B::przyklad()

 
.

 
br

 
/

 
/

 
Jestem

 
orginalną

 
funkcją

 
A::przyklad()

 
.

 
br

 
$b

 
-

 
przyklad()

 
;



Powyższy przekład wywołuje funkcję przyklad( ) z klasy A , ale nie tworząc obiektu tej klasy , przez co nie możemy napisać nic w stylu $a - przyklad( ) . Zamiast tego możemy wywołać przyklad( ) jako 'funkcję klasy ' , czyli jako funkcję tylko klasy , nie żadnego obiektu tej klasy .

Istnieją funkcje klasy , ale nie ma zmiennych klasy . Faktycznie w czasie wykonania nie ma żadnego obiektu . W związku z tym funkcje klasy nie mogą używać żadnych zmiennych obiektu ( ale mogą używać zmiennych lokalnych i globalnych ) , ani w ogóle $this .

W powyższym przykładzie , klasa B przedefiniowuje funkcję przyklad( ) . Orginalna definicja z klasy A jest zasłonięta i niedostępna , chyba że odwołasz się do konkretnej implementacji poprzez operator :: . Aby to zrobić , napisz A::przyklad( ) (powinieneś jednak użyć parent::przyklad() , tak jak to pokazano w następnej części ) .

W tym kontekście , istnieje bieżący obiekt i który ma zmienne obiektu . W związu z tym jeśli funkcja jest użyta Z WEWNĄTRZ funkcji obiektu , możesz używać $this i zmiennych obiektu .