PHP 对象序列化
简介
在 PHP 中,serialze() 函数以字节流的形式获取任何对象的字符串表示形式。对象的所有属性变量都包含在字符串中,但不保存方法。此字符串可以存储在任何文件中。
要从字节流中检索对象,可以使用 unserialize() 函数。在调用unserialize()函数之前必须有相应类的定义。
示例
首先让我们对以下类的对象进行序列化,并将该字符串存储在文件中。
<?php class test1{ private $name; function __construct($arg){ $this->name=$arg; } } $obj1=new test1("Kiran"); $str=serialize($obj1); $fd=fopen("obj.txt","w"); fwrite($fd, $str); fclose($fd); ?>
在当前文件夹中,创建 obj.txt。为了取消序列化,以下代码会从给定文件中读取的字节流中重建对象
示例
<?php class test1{ private $name; function __construct($arg){ $this->name=$arg; } function getname(){ return $this->name; } } $filename="obj.txt"; $fd=fopen("obj.txt","r"); $str=fread($fd, filesize($filename)); $obj=unserialize($str); echo "name: ' . $obj->getname(); ?>
输出
现在,以上代码将返回以下输出的名称
name: Kiran
广告