Pri učení sa interpretovaného jazyka PHP sa začínajúci weboví programátori stretávajú s takým konceptom, ako je pseudo premenná $ this. Jeho účel a pravidlá použitia v kóde sú veľmi odlišné od všetkých ostatných premenných, takže stojí za to sa tejto problematike podrobne venovať.
Triedy a predmety
Objektovo orientované programovanie (OOP), ktoré sa v PHP používa od verzie 5, poskytuje programátorovi možnosť vytvárať ľubovoľný počet inštancií rovnakej triedy, ktoré sa nazývajú objekty; v takom prípade dostane každá vytvorená kópia svoje vlastné meno. Objekt môže brať dáta nazývané argumenty, spracovávať ich pomocou funkcií a vracať výsledok. Akákoľvek funkcia triedy môže pristupovať k svojim vlastnostiam nie priamo, ale iba prostredníctvom konštrukcie objektu-> vlastnosť, takže vyvstáva otázka: ako napísať taký univerzálny kód, ktorý umožní ľubovoľnému generovanému objektu pracovať s údajmi bez ohľadu na jeho názov? Zvážte príklad zobrazený na obrázku 1.
Tento kód deklaruje triedu, ktorá má premennú (vlastnosť) a dve funkcie (metódy), z ktorých jedna je konštruktor, t.j. sa automaticky spustí pri vytvorení nového objektu. Úlohou funkcie konštruktora je priradiť údaje k vlastnosti, ktorá je prijatá argumentom pri vytváraní objektu. Keď je metóda volaná, vracia hodnotu vlastnosti.
Ďalej zvážte riadky 12 a 13. V nich sa vytvoria dve nové inštancie triedy, z ktorých jedna dostane ako argument číslo 5 a druhá - 7. Tieto hodnoty priradí funkcia konštruktoru premennej (majetok), ktorý je prístupný iba v rámci triedy. Každý vytvorený objekt je priradený k premenným a podľa toho (presnejšie, tieto premenné dostávajú iba odkazy na určené objekty, ale to momentálne nevadí). Teraz môžete získať hodnoty vlastností jednoduchým volaním metódy (riadky 15 a 16).
Priradenie $ táto pseudo-premenná
Poznámka: máme dva rôzne objekty s úplne rovnakými metódami.
A práve tu prichádza na rad pseudovarifikovateľná. Jeho názov je možné z angličtiny preložiť ako „tento“, t.j. označuje (je odkaz) na objekt, v ktorom sa nachádza. Vo výsledku možno riadok 5 pre čítať ako „priradiť hodnotu argumentu k vlastnosti objektu“, riadok 8 - „vrátiť hodnotu vlastnosti objektu“. Pre, premenná automaticky nadobudne príslušnú hodnotu.