PHP podporuje triedy a iné objektovo orientované konštrukty.
class exampleClass public static $ foo; verejný $ bar; public function regularFunction () echo $ this-> bar; public static function staticFunction () echo self :: $ foo; verejná statická funkcia otherStatFn () self :: staticFunction (); public function regularFnUsingStaticVar () echo self :: $ foo; // POZNÁMKA: Od PHP 5.3 je použitie $ this :: $ bar namiesto self :: $ bar povolené exampleClass :: $ foo = "Hello"; $ obj = new exampleClass (); $ obj-> bar = "Svet!"; exampleClass :: staticFunction (); / * tlačí Ahoj * / $ obj-> regularFunction (); / * tlačí svet! * /
Statické funkcie môžu používať iba statické premenné. Statické funkcie a premenné sú uvádzané prostredníctvom vlastné ::functionName () alebo vlastné ::názov_premennej. Vo vyššie uvedenom príklade sa na statické premenné odkazuje s názvom triedy (exampleClass :: $ foo) alebo s a vlastné :: (self :: $ foo), ak sa použije v rámci statickej metódy [s názvom staticFunction ()] triedy.
Na bežné funkcie a premenné triedy je potrebné odkazovať na kontext objektu. Nemôžu existovať bez kontextu objektu. Kontext objektu poskytuje $ this. Vo vyššie uvedenom príklade je $ bar pravidelnou premennou, a preto sa na ňu odkazuje ako $ obj-> bar (v kontexte objektu s premennou obj) alebo ako $ this-> panel (opäť v kontexte objektu v rámci metódy objektu).
sám nepoužíva predchádzajúce $ pretože sám nepredstavuje premennú, ale samotný konštrukt triedy. $ this odkazuje na konkrétnu premennú, takže má predchádzajúcu $.