downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

Референции в конструктора> <Сериализиране на обекти - обекти в сесии
[edit] Last updated: Fri, 18 Sep 2009

view this page in

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

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

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

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

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



add a note add a note User Contributed Notes Вълшебните функции __sleep и __wakeup
There are no user contributed notes for this page.

 
show source | credits | sitemap | contact | advertising | mirror sites