Класове и обекти (PHP 4)
PHP Manual

Вълшебните функции __sleep и __wakeup

serialize() проверява дали вашият клас има функция с вълшебно име __sleep. Ако има такава, тази функция се изпълнява преди всяка сериализация. Тя може да извършва почистване на обекта и връща масив с имената на всички променливи на обекта, който ще бъде сериализиран. Ако методът не върне нищо, тогава се сериализира стойността NULL и се генерира грешка от тип E_NOTICE.

__sleep може да се използва за затваряне на всички връзки към базите от данни, които са създадени в даден обект, за изпълняване на заявките, които са на изчакване или да извърши други подобни почистващи задачи. Също така функцията може да бъде полезна, ако имате много големи обекти, които не трябва да се съхраняват изцяло.

Функцията unserialize() е обратната на serialize() и проверява за наличието на функцията с вълшебно име __wakeup. Ако е налична, тази функция може да реконструира ресурсите на даден обект.

Замисъла на __wakeup е да възстанови връзките към базите от данни, които са изгубени по време на сериализацията и да извърши други задачи свързани с прединициализирането.


Класове и обекти (PHP 4)
PHP Manual