Junior
Welke magische methoden van de klasse ken je?
sobes.tech AI
Antwoord van AI
In PHP zijn er een reeks speciale methoden die "magisch" worden genoemd. Ze worden automatisch aangeroepen bij bepaalde acties met klasse-objecten. Hier enkele:
__construct(): Wordt aangeroepen bij het maken van een nieuw instantie van de klasse. Gebruikt voor het initialiseren van het object.__destruct(): Wordt aangeroepen bij het vernietigen van het object (bijvoorbeeld aan het einde van het script of door explicietunset()). Gebruikt voor het vrijmaken van bronnen.__call($name, $arguments): Wordt aangeroepen bij het proberen aanroepen van een niet-toegankelijke (niet zichtbaar in de huidige context) methode van het object.$nameis de naam van de aangeroepen methode,$argumentsis een array van de argumenten.__callStatic($name, $arguments): Vergelijkbaar met__call(), maar wordt aangeroepen bij het proberen aanroepen van een niet-toegankelijke statische methode.__get($name): Wordt aangeroepen bij het proberen te lezen van een niet-toegankelijke eigenschap van het object.$nameis de naam van de eigenschap.__set($name, $value): Wordt aangeroepen bij het proberen te schrijven naar een niet-toegankelijke eigenschap van het object.$nameis de naam van de eigenschap,$valueis de toe te wijzen waarde.__isset($name): Wordt aangeroepen bij het controleren of een niet-toegankelijke eigenschap bestaat metisset()ofempty().$nameis de naam van de eigenschap.__unset($name): Wordt aangeroepen bij het proberen te verwijderen van een niet-toegankelijke eigenschap metunset().$nameis de naam van de eigenschap.__sleep(): Wordt aangeroepen vóór serialisatie van het object metserialize(). Moet een array teruggeven met de namen van de eigenschappen die geserialiseerd moeten worden.__wakeup(): Wordt direct na deserialisatie van het object metunserialize()aangeroepen. Kan worden gebruikt om verbindingen of bronnen te herstellen.__toString(): Wordt aangeroepen bij het proberen het object om te zetten naar een string (bijvoorbeeld bij gebruik vanecho). Moet een stringrepresentatie van het object teruggeven.__invoke(...$args): Wordt aangeroepen bij het proberen het object te gebruiken als een functie.__set_state(array $properties): Wordt aangeroepen bij het herstellen van een object metvar_export(). Ontvangt een array van geëxporteerde eigenschappen.__clone(): Wordt aangeroepen bij het klonen van een object metclone. Wordt gebruikt voor diepe kopieën (bijvoorbeeld, objecten binnen een object).
Het is belangrijk om deze methoden met voorzichtigheid te gebruiken, omdat onjuist gebruik kan leiden tot onvoorspelbaar gedrag van de code.