在PHP中,serialize()用于序列化对象或数组,将其转换为一个可以存储的字符串,语法“serialize($value)”。使用serialize()函数序列化对象后,可以很方便的将它传递给其他需要它的地方,且其类型和结构不会改变。
本教程操作环境: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()。
推荐学习:《PHP视频教程》