Sobes.tech
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 expliciet unset()). 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. $name is de naam van de aangeroepen methode, $arguments is 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. $name is de naam van de eigenschap.
  • __set($name, $value): Wordt aangeroepen bij het proberen te schrijven naar een niet-toegankelijke eigenschap van het object. $name is de naam van de eigenschap, $value is de toe te wijzen waarde.
  • __isset($name): Wordt aangeroepen bij het controleren of een niet-toegankelijke eigenschap bestaat met isset() of empty(). $name is de naam van de eigenschap.
  • __unset($name): Wordt aangeroepen bij het proberen te verwijderen van een niet-toegankelijke eigenschap met unset(). $name is de naam van de eigenschap.
  • __sleep(): Wordt aangeroepen vóór serialisatie van het object met serialize(). Moet een array teruggeven met de namen van de eigenschappen die geserialiseerd moeten worden.
  • __wakeup(): Wordt direct na deserialisatie van het object met unserialize() 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 van echo). 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 met var_export(). Ontvangt een array van geëxporteerde eigenschappen.
  • __clone(): Wordt aangeroepen bij het klonen van een object met clone. 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.