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