Sobes.tech
Junior

Welche magischen Methoden der Klasse kennen Sie?

sobes.tech KI

Antwort von AI

In PHP gibt es eine Reihe spezieller Methoden, die "magische" Methoden genannt werden. Sie werden automatisch bei bestimmten Aktionen mit Klassenobjekten aufgerufen. Hier einige davon:

  • __construct(): Wird beim Erstellen einer neuen Instanz der Klasse aufgerufen. Wird zur Initialisierung des Objekts verwendet.
  • __destruct(): Wird beim Zerstören des Objekts aufgerufen (z.B. beim Beenden des Skripts oder beim expliziten Aufruf von unset()). Wird zum Freigeben von Ressourcen verwendet.
  • __call($name, $arguments): Wird aufgerufen, wenn versucht wird, eine nicht zugängliche (im aktuellen Kontext nicht sichtbare) Methode des Objekts aufzurufen. $name ist der Name der aufgerufenen Methode, $arguments ist ein Array ihrer Argumente.
  • __callStatic($name, $arguments): Ähnlich wie __call(), wird aber beim Versuch aufgerufen, eine nicht zugängliche statische Methode aufzurufen.
  • __get($name): Wird beim Versuch aufgerufen, eine nicht zugängliche Eigenschaft des Objekts zu lesen. $name ist der Name der Eigenschaft.
  • __set($name, $value): Wird beim Versuch, in eine nicht zugängliche Eigenschaft zu schreiben, aufgerufen. $name ist der Name der Eigenschaft, $value der zuzuweisende Wert.
  • __isset($name): Wird beim Prüfen, ob eine nicht zugängliche Eigenschaft mit isset() oder empty() existiert, aufgerufen. $name ist der Name der Eigenschaft.
  • __unset($name): Wird beim Versuch, eine nicht zugängliche Eigenschaft mit unset() zu entfernen, aufgerufen. $name ist der Name der Eigenschaft.
  • __sleep(): Wird vor der Serialisierung des Objekts mit serialize() aufgerufen. Sollte ein Array mit den Namen der zu serialisierenden Eigenschaften zurückgeben.
  • __wakeup(): Wird direkt nach der Deserialisierung des Objekts mit unserialize() aufgerufen. Kann verwendet werden, um Verbindungen oder Ressourcen wiederherzustellen.
  • __toString(): Wird beim Versuch aufgerufen, das Objekt in eine Zeichenkette umzuwandeln (z.B. beim Ausgeben mit echo). Sollte eine stringrepräsentation des Objekts zurückgeben.
  • __invoke(...$args): Wird beim Versuch aufgerufen, das Objekt wie eine Funktion zu verwenden.
  • __set_state(array $properties): Wird beim Wiederherstellen eines Objekts mit var_export() aufgerufen. Empfängt ein Array der exportierten Eigenschaften.
  • __clone(): Wird beim Klonen eines Objekts mit clone aufgerufen. Wird für tiefe Kopien verwendet (z.B. Objekte innerhalb des Objekts).

Es ist wichtig, diese Methoden mit Vorsicht zu verwenden, da eine falsche Verwendung zu unvorhersehbarem Verhalten des Codes führen kann.