这篇文章主要介绍了PHP自定义序列化接口Serializable用法,结合实例形式分析了Serializable自定义序列化接口的概念、功能、定义及使用方法,需要的朋友可以参考下

本文实例讲述了PHP自定义序列化接口Serializable用法。分享给大家供大家参考,具体如下:

PHP Serializable是自定义序列化的接口。实现此接口的类将不再支持__sleep()和__wakeup(),当类的实例被序列化时将自动调用serialize方法,并且不会调用 __destruct()或有其他影响。当类的实例被反序列化时,将调用unserialize()方法,并且不执行__construct()。接口摘要如下:

Serializable {

abstract public string serialize ( void )

abstract public mixed unserialize ( string $serialized )

}

例子说明:

/**

* 类自定义序列化相关操作

*

* @author 疯狂老司机

*/

class obj implements Serializable {

private $data;

private $step = 0;

/*

* 构造函数

*/

public function __construct() {

$this->data = "这是一段测试文字
";

echo '调用构造函数
';

}

public function serialize() {

return serialize($this->data);

}

public function unserialize($data) {

$this->step++;

$this->data = unserialize($data);

}

/*

* 析构函数

*/

public function __destruct() {

echo 'step:'.$this->step.' 调用析构函数
';

}

public function getData(){

return $this->data;

}

}

$obj = new obj;// 调用obj::__construct

$ser = serialize($obj);// 调用obj::serialize

$newobj = unserialize($ser);// 调用obj::unserialize

echo $newobj->getData();// 调用obj::getData

// 执行结束,调用析构函数,先执行newobj对象的析构函数在执行obj对象的析构函数

?>

以上例子输出:

调用构造函数

这是一段测试文字

step:1 调用析构函数

step:0 调用析构函数

您可能感兴趣的文章:

php serializable,PHP自定义序列化接口Serializable用法分析讲解相关推荐

  1. Java序列化接口Serializable接口的作用总结

    一.Java序列化接口Serializable的作用: 一个对象有对应的一些属性,把这个对象保存在硬盘上的过程叫做"持久化". 对象的默认序列化机制写入的内容是:对象的类,类签名, ...

  2. php nl2p,PHP函数nl2br()与自定义函数nl2p()换行用法分析,nl2brnl2p_PHP教程

    PHP函数nl2br()与自定义函数nl2p()换行用法分析,nl2brnl2p 本文实例讲述了PHP函数nl2br()与自定义函数nl2p()换行用法.分享给大家供大家参考,具体如下: 使用情景 很 ...

  3. java序列化接口Serializable

    Serializable接口说明 类的可序列化性通过实现(implements) java.io.Serializable可序列化接口. 没有实现这个接口的类不会将其任何状态序列化或反序列化. 可序列 ...

  4. php arrayaccess 二维,PHP数组式访问接口ArrayAccess用法分析

    本文实例讲述了PHP数组式访问接口ArrayAccess用法.分享给大家供大家参考,具体如下: PHP  ArrayAccess接口又叫数组式访问接口,该接口的作用是提供像访问数组一样访问对象的能力. ...

  5. 5.2 IO流(File类,Propertis配置文件,其他类(打印流,序列流,操作对象的流(序列化接口),随机访问文件的流,管道流,操作基本数据的流,操作数组的流,操作字符串的流),编码表)

    1.File类 IO流的流对象只能操作设备上的数据.File类:1.用来将文件或者文件夹(也称目录)封装成对象. 2.方便对文件和文件夹的属性信息进行操作.(操作文件夹,文件的属性(创建时间,修改时间 ...

  6. 微信公众号 分享接口 签名通过 分享无效果(JSSDK自定义分享接口的策略调整)...

    为规范自定义分享链接功能在网页上的使用,自2017年4月25日起,JSSDK"分享到朋友圈"及"发送给朋友"接口,自定义的分享链接,其域名或路径必须与当前页面对 ...

  7. java序列化库_java 中序列化(Serializable)

    18年5月份,在毕业快一年的时候,我终于把自己从研发助理偏向行政打杂,偶尔写一些前端代码的处境,回归到了初衷-安安静静写前后端代码的小小程序员~过程中的心酸也就不在这里吐啦,毕竟我是小太阳,永不熄灭的 ...

  8. Android序列化:Serializable Parcelable

    原文出处:http://blog.csdn.net/jdsjlzx/article/details/51122109?locationNum=14&fps=1 对于Parcel的理解: 在An ...

  9. java Serializable和Externalizable序列化反序列化详解--转

    一.什么是序列化?   "对象序列化"(Object Serialization)是 Java1.1就开始有的特性. 简单地说,就是可以将一个对象(标志对象的类型)及其状态转换为字 ...

最新文章

  1. AI 产品经理的三重门
  2. 一条正确的Java职业生涯规划,从理论到实践!
  3. 写论文,这个神器不能少!
  4. influxdb tsm文件_Influxdb中的Compaction操作
  5. C语言多文件编程基本格式
  6. UITextView 控件-IOS开发
  7. 14. model(2)
  8. 查找算法---二分查找(递归方式)
  9. C/C++文件操作经验总结
  10. java自动行走_java数据结构实现机器人行走
  11. 国内智能硬件行业 调研报告
  12. 根据城市首字母进行分类,区分多音字,获取城市首字母
  13. Win10微软输入法不见了
  14. 综述(十)北京在安全测试示范区上的政策与成果数据分析
  15. 转:我通过微软亚洲研究院面试的经历
  16. 刷脸支付便利更好推动普惠金融的落地
  17. 注册公司流程和费用(2016版)
  18. 高等数学阶段复习, 函数极限, 连续, 导数,微分
  19. 巴西龟饲养日志----春日野采
  20. 到底什么是智能超表面(RIS)?

热门文章

  1. 放疗是用计算机勾画靶区吗,放疗医生应修炼靶区勾画
  2. RFID智慧绿色洗涤系统
  3. 物理学复试面试专业问题最全整理(魔鬼训练)
  4. python天气预报制作过程_天气变冷了,用Python给父母制作一个天气提醒小助手~...
  5. 【YOLOX训练部署】将自己训练的YOLOX权重转化成ONNX 并进行推理
  6. mysql 计算总价_Mysql 存储过程查询总价,函数查询总价
  7. 目标是最完善的微前端解决方案 - qiankun 2.0
  8. python怎么设置字体样式_PyQt5 控件字体样式等设置的实现
  9. godday生成crt和key文件
  10. 苹果 iOS 第三方应用商店在欧盟上线,开发者并非都很兴奋