PHP toetab klasse ja muid objektorienteeritud konstruktsioone.
klassi näideClass public static $ foo; avalik $ baar; avalik funktsioon regularFunction () echo $ this-> bar; avalik staatiline funktsioon staticFunction () kaja ise :: $ foo; avalik staatiline funktsioon elseStatFn () self :: staticFunction (); avalik funktsioon regularFnUsingStaticVar () kaja ise :: $ foo; // MÄRKUS. Alates PHP 5.3-st on $ $: :: riba asemel $ this :: $ riba kasutamine: $ bar on lubatud exampleClass :: $ foo = "Tere"; $ obj = uus näideKlass (); $ obj-> bar = "Maailm!"; exampleClass :: staticFunction (); / * prindib Tere * / $ obj-> regularFunction (); / * prindib maailma! * /
Staatilised funktsioonid saavad kasutada ainult staatilisi muutujaid. Staatilistele funktsioonidele ja muutujatele viidatakse ise ::functionName () või ise ::muutujaNimi. Ülaltoodud näites viidatakse staatilistele muutujatele klassi nimega (exampleClass :: $ foo) või ise :: (ise :: $ foo), kui seda kasutatakse staatilises meetodis [nimega staticFunction ()] klassist.
Klassi tavapärased funktsioonid ja muutujad vajavad viidet objekti kontekstile. Need ei saa eksisteerida ilma objekti kontekstita. Objekti konteksti pakub $ see. Ülaltoodud näites on $ bar tavaline muutuja ja seetõttu viidatakse sellele kui $ obj-> bar (muutujaga objekti kontekstis obj) või kui $ this-> riba (jälle objekti kontekstis objekti meetodi piires).
ise ei kasuta eelnevat $ sest ise ei nimeta muutujat, vaid klassi konstrukti ise. $ see viitab konkreetsele muutujale, nii et sellel on eelnev $.