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

更新於: 18-Sep-2020

1K+ 瀏覽量

啟動您的職業生涯

透過完成課程來獲得認證

開始
廣告