php 序列化对象
2017-02-26 23:03
288 查看
习惯性借用手册里面的介绍:
所有php里面的值都可以使用函数serialize()来返回一个包含字节流的字符串来表示。unserialize()函数能够重新把字符串变回php原来的值。序列化一个对象将会保存对象的所有变量,但是不会保存对象的方法,只会保存类的名字。
唔,不懂没事,我们直接看代码:
注释有解释=。=。。。
结果如下:
![](http://img.blog.csdn.net/20170226230356639?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQTc1NzI5MTIyOA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
ok,那么我们现在明白了我们的序列化和反序列化了吧?
手册上手“返回一个包含字节流的字符串来表示”,那我们序列化后是不是变成了字符串了?然后我们反序列化后就又回到以前的样子了。
序列化:serialize()
反序列化:unserialize()
注意php手册还说过:“为了能够unserialize()一个对象,这个对象的类必须已经定义过。如果序列化类A的一个对象,将会返回一个跟类A相关,而且包含了对象所有变量值的字符串。 如果要想在另外一个文件中解序列化一个对象,这个对象的类必须在解序列化之前定义”
意思就是如果反序列化一个对象,那么这个对象必须在这个php文件里面,或者说已经引入到了这个文件,而且要在反序列化之前定义。
所有php里面的值都可以使用函数serialize()来返回一个包含字节流的字符串来表示。unserialize()函数能够重新把字符串变回php原来的值。序列化一个对象将会保存对象的所有变量,但是不会保存对象的方法,只会保存类的名字。
唔,不懂没事,我们直接看代码:
注释有解释=。=。。。
<?php //首先声明一个数组 $array_1 = array(); //随后。。。原谅我这个博主比较懒,用最麻烦的方式建数组 $array_1['value1'] = 'value_value'; $array_1['value2']='value_value'; $array_1['value3']='value_value'; $array_1['value4']='value_value'; $array_1['value5']='value_value'; $array_1['value6']='value_value'; $array_1['value7']='value_value'; //序列化数组 $str_value = serialize($array_1); //唔,输出的时候发现这个数组变成了字符串 echo $str_value; //n个换行,博主比较懒不好意思... echo '<br/><br/><br/><br/><br/>'; //为了严谨我就unset掉这个array了 unset($array_1); //反序列化,用一个变量接收值 $array_2=array(); $array_2 = unserialize($str_value); //输出,,,尼玛,发现是不是又是数组了? print_r($array_2);
结果如下:
ok,那么我们现在明白了我们的序列化和反序列化了吧?
手册上手“返回一个包含字节流的字符串来表示”,那我们序列化后是不是变成了字符串了?然后我们反序列化后就又回到以前的样子了。
序列化:serialize()
反序列化:unserialize()
注意php手册还说过:“为了能够unserialize()一个对象,这个对象的类必须已经定义过。如果序列化类A的一个对象,将会返回一个跟类A相关,而且包含了对象所有变量值的字符串。 如果要想在另外一个文件中解序列化一个对象,这个对象的类必须在解序列化之前定义”
意思就是如果反序列化一个对象,那么这个对象必须在这个php文件里面,或者说已经引入到了这个文件,而且要在反序列化之前定义。
相关文章推荐
- PHP中的串行化变量和序列化对象
- PHP中simplexml对象不能被序列化
- PHP 对象的存储与传输(序列化 serialize 对象)
- 简简单单PHP对象序列化学习
- PHP中的串行化变量和序列化对象(转)
- PHP中的串行化变量和序列化对象
- PHP基础之类和对象22——对象序列化
- PHP 对象的存储与传输(序列化 serialize 对象)
- PHP中的串行化变量和序列化对象
- 【小白笔记】PHP学习之路 (21) --对象 魔术方法、变量 序列化
- PHP中的串行化变量和序列化对象
- PHP中的串行化变量和序列化对象(一)
- PHP中simplexml对象不能被序列化
- PHP中的串行化变量和序列化对象
- Memcached中Perl序列化存储的对象PHP无法读取的解决
- PHP中的串行化变量和序列化对象
- PHP中simplexml对象不能被序列化
- Memcached中Perl序列化存储的对象PHP无法读取的解决
- PHP中的串行化变量和序列化对象
- unserialize的这个问题是由一个emlog论坛用户在使用时报错而发现的 问题表现情况如下: emlog缓存的保存方式是将php的数据对象(数组)序列化(serialize)后以文件的形式存放,