当然,其实我们也可以利用这个功能,把数组或者任意其他变量串行化成字符串,然
后通过
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() 可以用此字符串来重建原始的变量值。用序列化来保存对象可以保存对象中的