serialize -- 产生一个可存储的值的表示 php
描述 string serialize ( mixed value ) 数组
serialize() 返回字符串,此字符串包含了表示 value 的字节流,能够存储于任何地方。 函数
这有利于存储或传递 PHP 的值,同时不丢失其类型和结构。 测试
想要将已序列化的字符串变回 PHP 的值,可以使用 unserialize()。对象
serialize() 可处理除了 resource 以外的任何类型。甚至能够 serialize() 那些包含了指向其自身引用的数组。你正 serialize() 的数组/对象中的引用也将被存储。 字符串
当序列化对象时,PHP 将试图在序列动做以前调用该对象的成员函数 __sleep()。这样就容许对象在被序列化以前作任何清除操做。get
相似的,当使用 unserialize() 恢复对象时, 将调用 __wakeup() 成员函数。 回调函数
注意: 在 PHP 3 中,对象属性将被序列化,可是方法则会丢失。PHP 4 打破了此限制,能够同时存储属性和方法。请参见类与对象中的序列化对象部分获取更多信息。 string
unserialize (PHP 3 >= 3.0.5, PHP 4, PHP 5) 变量
unserialize -- 从已存储的表示中建立 PHP 的值
描述 mixed unserialize ( string str [, string callback] )
unserialize() 对单一的已序列化的变量进行操做,将其转换回 PHP 的值。
返回的是转换以后的值,可为 integer、float、string、array 或 object。若是传递的字符串不可解序列化,则返回 FALSE。
unserialize_callback_func 指令: 若是在解序列化的时候须要实例化一个未定义类,则能够设置回调函数以供调用(以避免获得的是不完整的 object “__PHP_Incomplete_Class”)。可经过 php.ini、ini_set() 或 .htaccess 定义‘unserialize_callback_func’。
每次实例化一个未定义类时它都会被调用。若要禁止这个特性,只需置空此设定。还须要注意的是 unserialize_callback_func 指令是从 PHP 4.2.0 开始提供使用的。 注意: callback 参数是在 PHP 4.2.0 中添加的 若被解序列化的变量是一个对象,在成功地从新构造对象以后,PHP 会自动地试图去调用 __wakeup() 成员函数(若是存在的话)。
具体用法:
1:$arr = array("测试1","测试2","测试3");//数组
2:$sarr = serialize($arr);//产生一个可存储的值(用于存储)
3://用任意方法(例如:你要是吧$sarr存在一个文本文件中你就能够用file_get_contents取得)获得存储的值保存在$newarr中;
4:$unsarr=unserialize($newarr);//从已存储的表示中建立 PHP 的值