Serializable (interface)
The Serializable interface
介绍
(PHP 5 >= 5.1.0, PHP 7)
用于定制序列化的接口。
实现此接口的类不再支持__sleep()和__wakeup()。只要需要序列化实例,就会调用序列化方法。这不会调用__destruct()或有任何其他副作用,除非在方法内编程。当数据被反序列化时,该类是已知的,并且将相应的unserialize()方法作为构造函数调用,而不是调用__construct()。如果您需要执行标准构造函数,则可以在该方法中执行此操作。
请注意,现在实现此接口的类的旧实例(在类实现接口之前已经序列化)是一个非序列化的对象,因此将调用__wakeup()而不是serialize方法,这对于迁移目的可能很有用。
界面简介
Serializable
{
/* Methods */
abstract public string serialize ( void )
abstract public void unserialize ( string $serialized )
}
Example #1 Basic usage
<?php
class obj implements Serializable {
private $data;
public function __construct() {
$this->data = "My private data";
}
public function serialize() {
return serialize($this->data
}
public function unserialize($data) {
$this->data = unserialize($data
}
public function getData() {
return $this->data;
}
}
$obj = new obj;
$ser = serialize($obj
var_dump($ser
$newobj = unserialize($ser
var_dump($newobj->getData()
?>
上面的例子会输出类似于:
string(38) "C:3:"obj":23:{s:15:"My private data";}"
string(15) "My private data"
目录
- Serializable :: serialize - 对象的字符串表示形式
- Serializable :: unserialize - 构造对象
← ArrayAccess::offsetUnset
Serializable::serialize →