Bij het leren van de geïnterpreteerde taal PHP komen beginnende webprogrammeurs een concept tegen als de pseudovariabele $ this. Het doel en de gebruiksregels in de code verschillen sterk van alle andere variabelen, dus het is de moeite waard om in detail op deze kwestie stil te staan.
Klassen en objecten
Objectgeoriënteerd programmeren (OOP), dat sinds versie 5 in PHP wordt gebruikt, biedt de programmeur de mogelijkheid om een willekeurig aantal instanties van dezelfde klasse te maken, genaamd objecten; in dit geval krijgt elke gemaakte kopie zijn eigen naam. Een object kan gegevens die argumenten worden genoemd, verwerken met functies en een resultaat retourneren. Elke functie van een klasse heeft niet rechtstreeks toegang tot zijn eigenschappen, maar alleen via de object-> eigenschapconstructie, dus de vraag rijst: hoe schrijf je zo'n universele code waarmee elk gegenereerd object met gegevens kan werken, ongeacht de naam? Beschouw het voorbeeld in figuur 1.
Deze code declareert een klasse die een variabele (eigenschap) en twee functies (methoden) heeft, waarvan er één een constructor is, d.w.z. start automatisch wanneer een nieuw object wordt gemaakt. De taak van de constructorfunctie is om de gegevens toe te wijzen aan de eigenschap die door het argument wordt ontvangen wanneer het object wordt gemaakt. De methode retourneert, wanneer aangeroepen, de waarde van de eigenschap.
Overweeg vervolgens de regels 12 en 13. Daarin worden twee nieuwe instanties van de klasse gemaakt, waarvan er één het nummer 5 als argument ontvangt en de andere - 7. Deze waarden worden door de constructorfunctie toegewezen aan een variabele (eigendom) dat alleen toegankelijk is binnen de klas. Elk gemaakt object wordt toegewezen aan variabelen en dienovereenkomstig (meer precies, deze variabelen krijgen alleen verwijzingen naar de gespecificeerde objecten, maar dit maakt op dit moment niet uit). Nu kunt u de eigenschapswaarden krijgen met een eenvoudige methodeaanroep (regel 15 en 16).
De $ deze pseudo-variabele toewijzen
Let op: we hebben twee verschillende objecten met exact dezelfde methodes.
En dit is waar de pseudovariabele te hulp komt. De naam kan vanuit het Engels worden vertaald als "dit", d.w.z. geeft aan (is een link) naar het object waarin het zich bevindt. Als resultaat kan regel 5 voor worden gelezen als "wijs de waarde van een argument toe aan een objecteigenschap", regel 8 - "geef de waarde van een objecteigenschap terug". De variabele krijgt namelijk automatisch de juiste waarde.