Учебник PHP

         

Магические функции __sleep и __wakeup

serialize() проверяет, имеется ли в вашем классе функция с "магическим" именем __sleep. Если да, эта функция запускается до выполнения любой сериализации. Она может зачистить объект, и предполагается, что она возвращает массив имён всех переменных этого объекта, которые должны быть сериализованы.

Назначение функции __sleep - закрыть любые соединения с БД, которые может иметь объект, подтверждая отправку данных или выполняя аналогичные задачи очистки. Также эта функция используется, если у вас имеются очень большие объекты, которые не нужно сохранять целиком.

И наоборот, unserialize() проверяет наличие функции с "магическим" именем __wakeup. Если да, эта функция может реконструировать любой ресурс, имеющийся у объекта.

Назначение функции __wakeup - восстановить любые соединения с БД, которые могли быть потеряны в процессе сериализации, и выполнить другие задачи реинициализации.

Содержание раздела