如何使用Serializable接口来自定义PHP中类的序列化
关于PHP中的对象序列化这件事儿,之前我们在很早前的文章中已经提到过 __sleep() 和 __weakup() 这两个魔术方法。今天我们介绍的则是另外一个可以控制序列化内容的方式,那就是使用 Serializable 接口。它的使用和上述两个魔术方法很类似,但又稍有不同。Serializable接口这段代码就是使用 Serializable 接口来进行序列化处理的,注意一点哦,实现了 Serializable 接口的类中的 __sleep() 和 __weakup() 魔术方法就无效了哦,序列化的时候不会进入它们。在这里,我们多普及一点序列化的知识。如果当前能够找到对应的类模板,那么可以还原出这个类的方法来,如果没有定义过这个类的模板,那么还原出来的类是没有方法只有属性的。上方序列化后的字符串开头类型标识为 "C:",那么我们看看不实现 Serializable 接口的对象序列化后是什么情况。
用户评论