public array __sleep ( void )php
void __wakeup ( void )web
serialize() 函数会检查类中是否存在一个魔术方法 __sleep()。若是存在,该方法会先被调用,而后才执行序列化操做。此功能能够用于清理对象,并返回一个包含对象中全部应被序列化的变量名称的数组。若是该方法未返回任何内容,则 NULL
被序列化,并产生一个 E_NOTICE
级别的错误。数组
示例:函数
class user { public $name; public $id; function __construct() { // 给id成员赋一个uniq id $this->id = 'asas'; } function __sleep() { //此处不串行化id成员 return(array('name')); } function __wakeup() { $this->id = uniqid(); } } $u = new user(); $u->name = "Leo"; $s = serialize($u); //serialize串行化对象u,此处不串行化id属性,id值被抛弃 $u2 = unserialize($s); //unserialize反串行化,id值被从新赋值 //对象u和u2有不一样的id赋值 print_r($u); print_r($u2);
结果:oop
user Object ( [name] => Leo [id] => asas ) user Object ( [name] => Leo [id] => 5621ed9f6614c )this