PHP поддържа класове и други обектно-ориентирани конструкции.
class exampleClass public static $ foo; публичен $ бар; публична функция regularFunction () echo $ this-> bar; публична статична функция staticFunction () echo self :: $ foo; публична статична функция elseStatFn () self :: staticFunction (); публична функция regularFnUsingStaticVar () echo self :: $ foo; // ЗАБЕЛЕЖКА: От PHP 5.3 използване на $ this :: $ bar вместо self :: $ bar е разрешено exampleClass :: $ foo = "Здравей"; $ obj = нов примерClass (); $ obj-> bar = "Свят!"; exampleClass :: staticFunction (); / * отпечатва Hello * / $ obj-> regularFunction (); / * отпечатва света! * /
Статичните функции могат да използват само статични променливи. Статичните функции и променливи се позовават чрез самостоятелно ::functionName () или самостоятелно ::variableName. В показания по-горе пример, статичните променливи се позовават с името на класа (exampleClass :: $ foo) или с a самостоятелно :: (self :: $ foo), когато се използва в статичния метод [с име staticFunction ()] на класа.
Редовните функции и променливи на клас се нуждаят от контекст на обекта, за да бъдат реферирани. Те не могат да съществуват без обективен контекст. Обектният контекст се осигурява от $ това. В горния пример $ bar е редовна променлива и затова се отнася като $ obj-> bar (в контекста на обекта с променлива OBJ) или като $ this-> bar (отново в контекст на обект в метод на обект).
себе си не използва предходно $ защото себе си не конотира променлива, а самата конструкция на класа. $ това прави препратка към конкретна променлива, така че има предходна $.