序列化与反序列化的意义:
在传递变量的过程中主要作用是保存一个对象方便以后重用。php有可能遇到变量值要跨脚本文件传递的过程。试想,如果为一个脚本中想要调用之前一个脚本的变量但是前一个脚本已经执行完毕,所有的变量和内容释放掉了,我们要如何操作呢?让前一个脚本不断的循环,等待后面脚本调用。这肯定是不现实的。
serialize和unserialize就是用来解决这一问题的。serialize可以将变量转换为字符串并且在转换中可以保存当前变量的值;unserialize则可以将serialize生成的字符串变换回变量。
1、序列化
函数:serialize()
作用:把复杂的数据类型压缩到一个字符串中数据类型可以是数组,字符串,对象等
注意:序列化一个对象将会保存对象的所有变量,但是不会保存对象的方法只会保存类的名字
2、反序列化
函数:unserialize()
作用:恢复原先被序列化的变量
3、魔法函数
在php类中可能会包含一些特殊的函数叫magic函数,magic函数命名是以符号__(双下划线)开头的
这些函数在某些情况下会自动调用,比如__construct 当一个对象创建时被调用,__destruct 当一个对象销毁时被调用(php脚本结束时),__toString 当一个对象被当作一个字符串使用。
- __construct:当一个对象创建时被调用
- __destruct:当一个对象销毁时被