PHP podporuje třídy a další objektově orientované konstrukty.
class exampleClass public static $ foo; veřejný $ bar; public function regularFunction () echo $ this-> bar; public static function staticFunction () echo self :: $ foo; veřejná statická funkce otherStatFn () self :: staticFunction (); public function regularFnUsingStaticVar () echo self :: $ foo; // POZNÁMKA: Od PHP 5.3 je použití $ this :: $ bar místo self :: $ bar povoleno exampleClass :: $ foo = "Hello"; $ obj = new exampleClass (); $ obj-> bar = "Svět!"; exampleClass :: staticFunction (); / * tiskne Hello * / $ obj-> regularFunction (); / * tiskne svět! * /
Statické funkce mohou používat pouze statické proměnné. Statické funkce a proměnné jsou odkazovány přes já::functionName () nebo já::název proměnné. Ve výše uvedeném příkladu jsou statické proměnné odkazovány na název třídy (exampleClass :: $ foo) nebo, a já:: (self :: $ foo) při použití v rámci statické metody [pojmenovaný staticFunction ()] třídy.
Běžné funkce a proměnné třídy vyžadují odkaz na kontext objektu. Nemohou existovat bez kontextu objektu. Kontext objektu poskytuje $ this. Ve výše uvedeném příkladu je $ bar pravidelnou proměnnou, a proto je označován jako $ obj-> bar (v kontextu objektu s proměnnou obj) nebo jako $ this-> panel (opět v kontextu objektu v rámci metody objektu).
já nepoužívá předchozí $ protože já nepředstavuje proměnnou, ale samotný konstrukt třídy. $ this odkazuje na konkrétní proměnnou, takže má předchozí $.