"פונקציות הקסם": __sleep ו __wakeup

serialize( ) בודק אם למחלקה יש פונקציה עם "מילת הקסם " __sleep . אם זה המצב , פונקציה זו מתחילה לרוץ לפני כל serialization . היא יכולה לנקות את האובייקט והיא אמורה להחזיר מערך עם שמות של המשתנים של אותו אובייקט שיכול להיות serialized .

היעד שלש שימוש ב __sleep הוא לסגור חיבור כלשהו למסד נתונים שיכול להיות לאובייקט , לבצע מסירת מידע שאמור להמסר או לבצע משימות ניקוי דומות . גם , הפונקציה היא שימושית אם יש אובייקט גדול מאוד שלא נדרש לשמירה מלאה .

ולהיפך , unserialize( ) בודק נוכחות של פונקציה עם מילת הקסם __wakeup . אם המילה נוכחת , פונקציה זו יכולה לבנות מחדש מקור כלשהו שיכול להיות לאובייקט .

השמימוש ב __wakeup נועג להקים מחדש חיבור למסד נתונים כשלהו שעלול ללכת לאיבוד במהלך serialization ולבצע reinitialization של משימה אחרת .