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 .