PHP中serialize的详细介绍

serialize

serialize() 返回字符串,此字符串包含了表示value 的字节流,可以存储于任何地方。

这有利于存储或传递 PHP 的值,同时不丢失其类型和结构。

想要将已序列化的字符串变回 PHP 的值,可使用unserialize() 。

serialize()可处理除了resource之外的任何类型。甚至可以serialize()那些包含了指向其自身引用的数组。

你正serialize()的数组/对象中的引用也将被存储。

当序列化对象时,PHP将试图在序列动作之前调用该对象的成员函数__sleep() 。

这样就允许对象在被序列化之前做任何清除操作。类似的,当使用unserialize()恢复对象时,将调用__wakeup()成员函数。

Note:

在 PHP 3 中,对象属性将被序列化,但是方法则会丢失。PHP 4 打破了此限制,可以同时存储属性和方法。请参见类与对象中的序列化对象部分获取更多信息。

示例:

  1. $arr = array (
  2. 'liqingbo'=> '李清波'
  3. ,'zhangxueyou'=> '张学友'
  4. ,'guofucheng'=> '郭富城'
  5. );
  6. $seri = serialize($arr);

输出:a:3:{s:8:"lciqingbo";s:9:"李清波";s:11:"zhangxueyou";s:9:"张学友";s:10:"guofucheng";s:9:"郭富城";}