本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑
php serialize() 函数
serialize() 函数用于序列化对象或数组,将其转换为一个可以存储的字符串并返回。
以对象为例,当序列化一个对象时,将会保存对象的所有变量,但是不会保存对象的方法,只会保存类的名字。另外,为了能够反序列化一个对象,这个对象的类必须已经定义过。如果序列化类 A 的一个对象,将会返回一个跟类 A 相关,而且包含了对象所有变量值的字符串。
serialize() 函数的语法格式如下:
serialize($value)
$value :要序列化的变量。
serialize() 函数可以处理除了 resource(资源)之外的任何类型。当序列化对象时,PHP 会在序列动作之前调用该对象的 __sleep() 成员函数。这样就允许对象在被序列化之前做任何清除操作。类似的,当使用 unserialize() 反序列化对象时,将调用 __wakeup() 成员函数。
【示例】使用 serialize() 函数序列化一个对象。
<?php
header("Content-type:text/html;charset=utf-8");
class WebSit {
public $name;
public $url;
function __construct($name, $url) {
$this -> name = $name;
$this -> url = $url;
}
}
$websit = new WebSit('PHP中文网', 'https://www.php.cn/');
$ser_str = serialize($websit);
echo $ser_str;
?>
运行结果如下:
说明:如果想要将已序列化的字符串变回 PHP 的值,可使用 unserialize()。