什么是序列化?

一个程序在执行过程中会产生新的数据,把内存中的数据转换为可以保存或可传输的过程就是序列化。

什么是反序列化?

把保存或传输的数据加载到内存,还原成运行程序中的具体的数据类型变量的过程就是反序列化。

魔术方法

serialize() 用于序列化对象或数组,并返回一个字符串返回带有变量类型的字符串
unserialize() 将通过serialize()函数序列化后的对象或数组进行反序列化,并返回原始的对象结构
_construct() 类的构造函数
_call() 在对象中调用一个不可访问方法时调用
_callStatic() 用静态方式中调用一个不可访问方法时调用
_get() 获得一个类的成员变量时调用
_set() 设置一个类的成员变量时调用
_isset() 当对不可访问属性调用isset()或empty()时调用
_unset() 当对不可访问属性调用unset()时被调用
_sleep() 当对不可访问属性调用sleep()时被调用
_wakeup() 执行unserialize()时,先会调用这个函数
_toString() 类被当作字符串时的回应方法
_invoke() 调用函数的方式调用一个对象时的回应方法
_set_state() 调用var_export()导出类时,此静态方法会被调用
_clone() 当对象复制完成时调用
_autoload() 尝试加载未定义的类
_debuglnfo() 打印所需调试信息