首页 > 文章列表 > PHP对象序列化

PHP对象序列化

php 对象 序列化
389 2023-08-27

简介

任何对象以字节流形式表示的字符串都是通过 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