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
廣告