【发布时间】:2011-10-24 09:11:44
【问题描述】:
我正在阅读 PHP 的序列化/反序列化概念。我想知道它们是如何存储在文件系统/数据库中的。我猜它是二进制格式。但是,我想知道整个班级是如何存储的?我知道数据成员中的数据是可以存储的,但是方法是如何存储的呢?
我的意思是,PHP 怎么知道 someFunc() 的函数里面写了什么代码?
$obj = new ClassName();
$obj->someFunc();
$serial = serialize($obj);
$unserialobj = unserialize($serial);
$unserialobj->someFunc();
PHP 可以知道在第 2 行要做什么,但它如何知道在第 5 行要做什么,这是一个未序列化的对象?它也保存代码吗?
【问题讨论】:
-
serialize()不会在任何地方存储任何内容。它只是序列化一个对象并将结果作为字符串提供给您。