PHP podržava klase i druge objektno orijentirane konstrukte.
primjer klaseClass public static $ foo; javni $ bar; javna funkcija regularFunction () echo $ this-> bar; javna statička funkcija staticFunction () echo self :: $ foo; javna statička funkcija elseStatFn () self :: staticFunction (); javna funkcija regularnaFnUsingStaticVar () echo self :: $ foo; // NAPOMENA: Od PHP 5.3 upotreba $ this :: $ bar umjesto self :: $ bar je dopuštena exampleClass :: $ foo = "Pozdrav"; $ obj = novi primjerClass (); $ obj-> bar = "Svijet!"; exampleClass :: staticFunction (); / * ispisuje Hello * / $ obj-> regularFunction (); / * ispisuje svijet! * /
Statičke funkcije mogu koristiti samo statičke varijable. Statičke funkcije i varijable su referencirane putem samouprave ::functionName () ili samouprave ::variableName. U gornjem prikazanom primjeru, statičke se varijable pozivaju s nazivom klase (exampleClass :: $ foo) ili sa a samouprave :: (self :: $ foo) kada se koristi u statičkoj metodi [imenovan staticFunction ()] klase.
Redovite funkcije i varijable klase trebaju referencirati objektni kontekst. Oni ne mogu postojati bez objektnog konteksta. Okvir objekta pruža $ ta. U gornjem primjeru, $ bar je redovna varijabla, pa se navodi kao $ obj-> bar (u objektnom kontekstu sa varijablom obj) ili kao $ this-> traka (opet u objektnom kontekstu unutar metode objekta).
sam ne koristi prethodno $ jer sam Ne konotira varijablu, već samu konstrukciju klase. $ ta odnosi se na određenu varijablu, tako da ima prethodnu $.