PHP obsługuje klasy i inne konstrukcje obiektowe.
klasa exampleClass public static $ foo; bar publiczny; funkcja publiczna regularFunction () echo $ this-> bar; public static function staticFunction () echo self :: $ foo; public static function anotherStatFn () self :: staticFunction (); funkcja publiczna regularFnUsingStaticVar () echo self :: $ foo; // UWAGA: Od PHP 5.3 dozwolone jest użycie $ this :: $ bar zamiast self :: $ bar exampleClass :: $ foo = "Hello"; $ obj = nowy exampleClass (); $ obj-> bar = "Świat!"; exampleClass :: staticFunction (); / * drukuje Hello * / $ obj-> regularFunction (); / * drukuje Świat! * /
Funkcje statyczne mogą używać tylko zmiennych statycznych. Funkcje statyczne i zmienne są przywoływane przez samego siebie::functionName () lub samego siebie::nazwa zmiennej W powyższym przykładzie zmienne statyczne są przywoływane przy użyciu nazwy klasy (przykladClass :: $ foo) lub przy pomocy samego siebie:: (self :: $ foo), gdy jest używany w metodzie statycznej [o nazwie staticFunction ()] klasy.
Zwykłe funkcje i zmienne klasy wymagają odniesienia do kontekstu obiektu. Nie mogą istnieć bez kontekstu obiektowego. Kontekst obiektu zapewnia $ to. W powyższym przykładzie $ bar jest zmienną regularną i dlatego jest określany jako $ obj-> bar (w kontekście obiektu ze zmienną obj) lub jako pasek $ this-> (ponownie w kontekście obiektu w ramach metody obiektu).
samego siebie nie używa poprzedzającego $ bo samego siebie nie oznacza zmiennej, ale sama konstrukcja klasy. $ to odwołuje się do określonej zmiennej, więc ma poprzedzającą $.