__sleep
ve __wakeup
sihirli işlevleri
serialize() işlevi sınıfınızın
__sleep adında sihirli bir işlev içerip içermediğine
bakar. Varsa, her dizgeleleştirme öncesi bu işlev çalıştırılır. Bu
işlevin nesneyi temizleyip, dizgeleştirilecek nesnenin tüm değişken
isimlerini içeren bir dizi döndürmesi beklenir. Eğer işlev dizgeleştirme
sonucunda NULL
'dan başka birşey döndürmüyorsa bir
E_NOTICE
çıktılanır.
__sleep işlevinden beklenen, askıdaki veriyi teslim etmesi ve bazı temizlik işlemleri yapmasıdır. İşlev, tamamen kaydedilmesi gereken çok büyük nesneler için de ayrıca kullanışlıdır.
unserialize() işlevi ise tersine __wakeup adında bir sihirli işlevin varlığına bakacaktır. Varsa, bu işlev nesnenin sahip olduğu özkaynakların hepsini yeniden oluşturacaktır.
__wakeup işlevinden beklenen, nesneleştirme sırasında kaybedilen veritabanı bağlantılarını yeniden oluşturmak ve diğer ilklendirmeleri yeniden yapmaktır.