serialize()和unserialize()在php手册上的解释是:

serialize — Generates a storable representation of a value

serialize — 产生一个可存储的值的表示

unserialize — Creates a PHP value from a stored representation

unserialize — 从已存储的表示中创建 PHP 的值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<?php
//声明一个类
class  dog {
 
     var  $name ;
     var  $age ;
     var  $owner ;
 
     function  dog( $in_name = "unnamed" , $in_age = "0" , $in_owner = "unknown" ) {
         $this ->name =  $in_name ;
         $this ->age =  $in_age ;
         $this ->owner =  $in_owner ;
     }
 
     function  getage() {
         return  ( $this ->age * 365);
     }
     
     function  getowner() {
         return  ( $this ->owner);
     }
     
     function  getname() {
         return  ( $this ->name);
     }
}
//实例化这个类
$ourfirstdog  new  dog( "Rover" ,12, "Lisa and Graham" );
//用serialize函数将这个实例转化为一个序列化的字符串
$dogdisc  = serialize( $ourfirstdog );
print  $dogdisc //$ourfirstdog 已经序列化为字符串 O:3:"dog":3:{s:4:"name";s:5:"Rover";s:3:"age";i:12;s:5:"owner";s:15:"Lisa and Graham";}
 
print  '<BR>' ;
 
/* 
-----------------------------------------------------------------------------------------
     在这里你可以将字符串 $dogdisc 存储到任何地方如 session,cookie,数据库,php文件 
-----------------------------------------------------------------------------------------
*/
 
//我们在此注销这个类
unset( $ourfirstdog );
 
/*    还原操作   */
 
/* 
-----------------------------------------------------------------------------------------
     在这里将字符串 $dogdisc 从你存储的地方读出来如 session,cookie,数据库,php文件 
-----------------------------------------------------------------------------------------
*/
 
 
//我们在这里用 unserialize() 还原已经序列化的对象
$pet  = unserialize( $dogdisc );  //此时的 $pet 已经是前面的 $ourfirstdog 对象了
//获得年龄和名字属性
$old  $pet ->getage();
$name  $pet ->getname();
//这个类此时无需实例化可以继续使用,而且属性和值都是保持在序列化之前的状态
print  "Our first dog is called $name and is $old days old<br>" ;
print  '<BR>' ;
?>

本文转自 IT阿飞 51CTO博客,原文链接:http://blog.51cto.com/itafei/1867543