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 vonunset()). 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.$nameist der Name der aufgerufenen Methode,$argumentsist 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.$nameist der Name der Eigenschaft.__set($name, $value): Wird beim Versuch, in eine nicht zugängliche Eigenschaft zu schreiben, aufgerufen.$nameist der Name der Eigenschaft,$valueder zuzuweisende Wert.__isset($name): Wird beim Prüfen, ob eine nicht zugängliche Eigenschaft mitisset()oderempty()existiert, aufgerufen.$nameist der Name der Eigenschaft.__unset($name): Wird beim Versuch, eine nicht zugängliche Eigenschaft mitunset()zu entfernen, aufgerufen.$nameist der Name der Eigenschaft.__sleep(): Wird vor der Serialisierung des Objekts mitserialize()aufgerufen. Sollte ein Array mit den Namen der zu serialisierenden Eigenschaften zurückgeben.__wakeup(): Wird direkt nach der Deserialisierung des Objekts mitunserialize()aufgerufen. Kann verwendet werden, um Verbindungen oder Ressourcen wiederherzustellen.__toString(): Wird beim Versuch aufgerufen, das Objekt in eine Zeichenkette umzuwandeln (z.B. beim Ausgeben mitecho). 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 mitvar_export()aufgerufen. Empfängt ein Array der exportierten Eigenschaften.__clone(): Wird beim Klonen eines Objekts mitcloneaufgerufen. 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.