【发布时间】:2011-08-01 23:09:01
【问题描述】:
下面是我目前正在编写的一个类的一部分,它应该负责序列化。 serialize 函数工作正常,并生成了正确的字符串。 问题出在反序列化($data)函数中。 将正确的序列化字符串传递给反序列化函数中的反序列化。 不幸的是,$scl 对象不包含预期的数据。没有通知或错误抛出。结果是 $scl->printData() 打印信息但不打印类变量的内容。将来我想将反序列化的结果分配给 $this。我错过了什么?
public function serialize() {
$serial = serialize($this);
$df = gzdeflate($serial);
$b64 = base64_encode($df);
$ue = urlencode($b64);
return($ue);
}
public function deserialize($data) {
$u64 = base64_decode($data);
$gf = gzinflate($u64);
$scl = unserialize($gf);
if(!$scl)
echo"Cannot unserialize<br>";
$scl->printData();
}
function __sleep() {
return($this);
}
function __wakeup() {
echo"Waking up";
}
public function printData() {
echo"Data: <br>
ID: {$this->ID} <br>
sID: {$this->sID}<br>
...
";
}
【问题讨论】:
标签: php class serialization