串行化能够把变量饱含对象,转产生三回九转bytes数据.
你能够将串行化后的变量存在三个文件里或在互连网上传输.
然后再反串行化还原为原本的数据.
你在反串行化类的目的此前定义的类,PHP能够成功地蕴藏其指标的属性和方法.
一时你恐怕须要一个目标在反串行化后迅即实施.
为了那样的目标,PHP会自动物检疫索__sleep和__wakeup方法.当二个目的被串行化,PHP会调用__sleep方法.
在反串行化七个目标后,PHP 会调用__wakeup方法. 那七个法子都不收受参数.
__sleep方法必需重临二个数组,包括要求串行化的属性.
PHP会吐弃此外性质的值.
若无__sleep方法,PHP将保留全体属性.例子6.16显得了什么用__sleep和__wakeup方法来串行化七个对象.
Id属性是三个不策动保留在指标中的不经常属性.
__sleep方法保障在串行化的靶子中不带有id属性.
当反串行化一个User对象,__wakeup方法创建id属性的新值.
那些事例被规划成本身保持.
在事实上开销中,你可能开采带有财富的对象供给那么些方法. Listing 6.16 Object
serializationid = uniqid(State of Qatar; } function __sleep(卡塔尔(قطر‎ { //do not serialize
this->id 不串行化id return; } function __wakeup(State of Qatar { //give user a
unique ID $this->id = uniqid(卡塔尔国; } } //create object 创建贰个对象 $u =
new User; $u->name = “Leon”; //serialize it 串行化
注意不串行化id属性,id的值被废弃 $s = serialize; //unserialize it
反串行化 id被重复赋值 $u2 = unserialize; //$u and $u2 have different IDs
$u和$u2有例外的ID print_r; ?>

发表评论

电子邮件地址不会被公开。 必填项已用*标注