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.