PHP Serializable 介面
簡介
PHP 庫中存在 Serializable 介面,用於構建提供自定義序列化的類。PHP 的 serialize() 函式能夠將大多數值序列化為一個可儲存的表示。但是,無法序列化使用者自定義類的物件。此介面使得這種情況成為可能。
語法
Serializable {
/* Methods */
abstract public serialize ( void ) : string
abstract public unserialize ( string $serialized ) : void
}方法
Serializable::serialize — 物件的字串表示
Serializable::unserialize — 用序列化的字串表示構建物件
內建的 serialze() 函式生成一個值的儲存表示
serialize ( mixed $value ) : string
unserialize() 函式從一個儲存的表示中建立一個 PHP 值
unserialize ( string $str [, array $options ] ) : mixed
Serializable 示例
在以下示例中,一個字串變數被用作 myclass 的私有屬性。當內建的 serialize() 函式使用這個類的物件作為引數時,serialize() 方法會自動被呼叫。類似地,unserialize() 函式會用字串私有屬性重建物件。
示例
<?php
class myclass implements Serializable {
private $arr;
public function __construct() {
$this->arr = "TutorialsPoint India (p) Ltd";
}
public function serialize() {
echo "Serializing object..
";
return serialize($this->arr);
}
public function unserialize($data) {
echo "Unserializing object..
";
$this->arr = unserialize($data);
}
public function getdata() {
return $this->arr;
}
}
$obj = new myclass;
$serobj = serialize($obj);
var_dump ($serobj);
$obj1 = unserialize($serobj);
var_dump($obj1->getdata());
?>輸出
上述程式顯示以下輸出
Serializing object..
string(55) "C:7:"myclass":36:{s:28:"TutorialsPoint India (p) Ltd";}"
Unserializing object..
string(28) "TutorialsPoint India (p) Ltd"
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP