background image

  当然,其实我们也可以利用这个功能,把数组或者任意其他变量串行化成字符串,然
后通过

curl 功能来模拟 GET/POST 功能,达到能够无用用户执行动作就从远程服务器获取

数据的功能。
  二、对象序列化
  对象的序列化也是一个比较普遍的功能,能够把一个对象进行串行化以后变成一个字
符串,能够保存或者传输。
  我们先看一个例子:
class TestClass
{
 

var $a;

 

var $b;

 

function TestClass()

 

{

  

$this->a = "This is a";

  

$this->b = "This is b";

 

}

 

function getA()

 

{

  

return $this->a;

 

}

 

function getB()

 

{

  

return $this->b;

 

}

}
$obj = new TestClass;
$str = serialize($obj);
echo $str; 
  输出结果:
O:9:"TestClass":2:{s:1:"a";s:9:"This is a";s:1:"b";s:9:"This is b";} 
  我们来分析一个对象串行化之后的字符串。
O:9:"TestClass":2:
{
 

s:1:"a";s:9:"This is a";

 

s:1:"b";s:9:"This is b";


    首 先 看 对 于 对 象 本 身 的 内 容 :

O:9:"TestClass":2:O 是 说 明 这 是 一 个 对 象 类 型

object),然后 9 是代表对象的名字查过浓度,2 是代表该对象有几个属性。在看两个属性

的内容:
  

s:1:"a";s:9:"This is a"; 其实跟数组的内容比较类似,第一项:s:1:"a"; 是描述属性名称的,

第二项

s:9:"This is a"; 是描述属性值的。后面的属性类似。

  先说一种对象序列化的应用,下面的内容是

PHP 手册上,没有更改原文。

   

serialize()  返 回 一 个 字 符 串 , 包 含 着 可 以 储 存 于   PHP  的 任 何 值 的 字 节 流 表 示 。

unserialize() 可以用此字符串来重建原始的变量值。用序列化来保存对象可以保存对象中的