Die "magischen" Funktionen __sleep und __wakeup

PHP Handbuch
Zurück | Kapitel 14. Klassen und Objekte | Nach vorne

# Die "magischen" Funktionen `__sleep` und `__wakeup`

serialize() prüft, ob Ihre Klasse eine Funktion mit dem magischen Namen `__sleep` enthält. Wenn dem so ist, wird diese Funktion vor einer Serialisierung ausgeführt. Sie kann das Objekt aufräumen und soll ein Array mit den Namen aller Variablen des zu serialisierenden Objektes zurückgeben.

Die beabsichtigte Verwendung von `__sleep` ist, eventuelle Datenbankverbindungen des Objektes zu schließen, noch offene Daten zu committen, oder ähnliche Säuberungsaktionen durchzuführen. Weiters ist diese Funktion hilfreich, wenn Sie sehr große Objekte haben, die nicht komplett gespeichert werden müssen.

Umgekehrt prüft unserialize() die Existenz einer Funktion mit dem magischen Namen `__wakeup`. Ist diese vorhanden, kann sie Ressourcen des Objektes rekonstruieren.

Die vorgesehene Verwendung von `__wakeup` ist die Wiederherstellung von Datenbankverbindungen, welche während der Serialisierung verloren gegangen sein könnten, sowie andere Neuinitialisierungen.

Zurück | Zum Anfang | Nach vorne
Objekte serialisieren - Objekte in Sessions | Nach oben | Referenzen innherhalb des Konstruktors