PHP understøtter klasser og andre objektorienterede konstruktioner.
klasseeksempel Klass offentlig statisk $ foo; offentlig $ bar; public function regularFunction () ekko $ denne-> bar; offentlig statisk funktion staticFunction () echo self :: $ foo; offentlig statisk funktion anotherStatFn () self :: staticFunction (); offentlig funktion regularFnUsingStaticVar () echo self :: $ foo; // BEMÆRK: Fra PHP 5.3 bruger $ denne :: $ bar i stedet for selv :: $ bar er tilladt eksempelClass :: $ foo = "Hej"; $ obj = nyt eksempelKlasse (); $ obj-> bar = "Verden!"; exampleClass :: staticFunction (); / * udskriver Hej * / $ obj-> regularFunction (); / * udskriver verden! * /
Statiske funktioner kan kun bruge statiske variabler. Statiske funktioner og variabler henvises til via selv::funktionsnavn () eller selv::variableName. I eksemplet vist ovenfor henvises til statiske variabler med klassens navn (eksempelKlasse :: $ foo) eller, med en selv:: (self :: $ foo) når det bruges inden for den statiske metode [navngivet staticFunction ()] af klassen.
Regelmæssige funktioner og variabler i en klasse har brug for en objektkontekst for at blive henvist til. De kan ikke eksistere uden en genstandskontekst. Objektskonteksten leveres af $ dette. I ovenstående eksempel er $ bar en regelmæssig variabel, og det kaldes derfor $ obj-> bjælke (i objektsammenhæng med variabel obj) eller som $ denne-> bjælke (igen i en objektsammenhæng inden for en metode til et objekt).
selv bruger ikke et foregående $ fordi selv betyder ikke en variabel, men selve klassekonstruktionen. $ dette refererer til en bestemt variabel, så den har en foregående $.