介绍

通过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