什么是序列化?
一个程序在执行过程中会产生新的数据,把内存中的数据转换为可以保存或可传输的过程就是序列化。
什么是反序列化?
把保存或传输的数据加载到内存,还原成运行程序中的具体的数据类型变量的过程就是反序列化。
魔术方法
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() | 打印所需调试信息 |