PHP串行化与反串行化实例分析


Posted in PHP onDecember 27, 2016

本文实例讲述了PHP串行化与反串行化。分享给大家供大家参考,具体如下:

对象也是一种在内存中存储的数据类型,他的寿命通常随着生成该对象的程序的终止而终止。有时候可能需要把对象的状态保存下来,需要时再将其回复。串行化是把每个对象转化为二进制字符串。

<?php
class Person {
  var $name;
  var $sex;
  var $age;
  function __construct($name = "", $sex = "男", $age = 22) {
    $this->name = $name;
    $this->sex = $sex;
    $this->age = $age;
  }
  function say() {
    echo $this->name . "在说话<br/>";
  }
  function run() {
    echo "在走路·<br/>";
  }
  //串行化的时候自动调用,成员$sex被忽略,只串行$name,$age
  function __sleep() {
    $arr = array("name","age");
    return $arr;
  }
  //反串行化时自动调用
  function __wakeup() {
    $this->age = 33;
  }
}
class Student extends Person {
  var $school;
  function __construct($name = "", $sex = "男", $age = 22,$school="") {
    parent::__construct($name,$sex,$age);
    $this->school = $school;
  }
  function study() {
    echo $this->name."正在".$this->school."学习<br/>";
  }
}
class Teacher extends Student {
  var $wage;
  function teaching() {
    echo $this->name."正在".$this->school."教学,每月工资为".$this->wage."<br/>";
  }
  //如果调用了不存在的方法,将会自动调用__call(),不会报错
  function __call($functionName,$args) {
    echo "函数名:".$functionName;
    print_r($args);
    echo "<br/>";
  }
}
$teacher1 = new Teacher("kaifu","男",22);
$teacher1->school = "edu";
$teacher1->wage = 4000;
$teacher1->say();
$teacher1->study();
$teacher1->teaching();
$teacher1->hello(1,2,3);
?>
<?php
  require_once 'Person.php';
  $teacher = new Teacher("tom","男",22);
  $teacher_str = serialize($teacher);
  file_put_contents("file.txt", $teacher_str);
  //反串行化
  $objStr = file_get_contents("file.txt");
  $t = unserialize($objStr);
  echo $t->age;
?>

串行化 file.txt :

O:7:"Teacher":2:{s:4:"name";s:3:"tom";s:3:"age";i:22;}

PHP串行化与反串行化实例分析

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
配置支持SSI
Nov 25 PHP
PHP操作mysql函数详解,mysql和php交互函数
May 19 PHP
input file获得文件根目录简单实现
Apr 26 PHP
10款实用的PHP开源工具
Oct 23 PHP
ThinkPHP中limit()使用方法详解
Apr 19 PHP
一个简单的php路由类
May 29 PHP
PHP实现加密文本文件并限制特定页面的存取的效果
Oct 21 PHP
CI框架常用经典操作类总结(路由,伪静态,分页,session,验证码等)
Nov 21 PHP
PHP调用API接口实现天气查询功能的示例
Sep 21 PHP
Laravel事件监听器用法实例分析
Mar 12 PHP
PHP7创建COOKIE和销毁COOKIE的实例方法
Feb 03 PHP
PHP dirname功能及原理实例解析
Oct 28 PHP
PHP 表单提交及处理表单数据详解及实例
Dec 27 #PHP
iOS+PHP注册登录系统 PHP部分(上)
Dec 26 #PHP
PHP实现表单提交时去除斜杠的方法
Dec 26 #PHP
PHP简单实现冒泡排序的方法
Dec 26 #PHP
php mysql操作mysql_connect连接数据库实例详解
Dec 26 #PHP
PHP常用函数总结(180多个)
Dec 25 #PHP
详解EventDispatcher事件分发组件
Dec 25 #PHP
You might like
杏林同学录(八)
2006/10/09 PHP
require(),include(),require_once()和include_once()的异同
2007/01/02 PHP
php中将数组存到文件里的实现代码
2012/01/19 PHP
destoon调用自定义模板及样式的公告栏
2014/06/21 PHP
php比较相似字符串的方法
2015/06/05 PHP
Yii2.0多文件上传实例说明
2017/07/24 PHP
JavaScript的Module模式编程深入分析
2013/08/13 Javascript
js中使用replace方法完成某个字符的转换
2014/08/20 Javascript
JavaScript运动减速效果实例分析
2015/08/04 Javascript
javascript单页面手势滑屏切换原理详解
2016/03/21 Javascript
js调用webservice构造SOAP进行身份验证
2016/04/27 Javascript
全面解析多种Bootstrap图片轮播效果
2016/05/27 Javascript
JS产生随机数的几个用法详解
2016/06/22 Javascript
JavaScript学习笔记整理_用于模式匹配的String方法
2016/09/19 Javascript
Javascript 普通函数和构造函数的区别
2016/11/05 Javascript
jQuery 如何实现一个滑动按钮开关
2016/12/01 Javascript
在vue中实现禁止回退上一步,路由不存历史记录
2020/07/22 Javascript
[02:16]完美世界DOTA2联赛PWL S3 集锦第三期
2020/12/21 DOTA
python中pycurl库的用法实例
2014/09/30 Python
Python使用面向对象方式创建线程实现12306售票系统
2015/12/24 Python
十分钟利用Python制作属于你自己的个性logo
2018/05/07 Python
python实现从本地摄像头和网络摄像头截取图片功能
2019/07/11 Python
python 使用pygame工具包实现贪吃蛇游戏(多彩版)
2019/10/30 Python
部署Django到阿里云服务器教程示例
2020/06/03 Python
Selenium执行完毕未关闭chromedriver/geckodriver进程的解决办法(java版+python版)
2020/12/07 Python
美国汽车零部件和配件网站:CarParts
2019/03/13 全球购物
行政助理岗位职责
2013/11/10 职场文书
在校学生职业规划范文
2014/01/08 职场文书
物流管理专业毕业生自荐信
2014/03/04 职场文书
数学系毕业生求职信
2014/05/29 职场文书
建筑工程技术专业求职信
2014/07/16 职场文书
2014年小学工作总结
2014/11/26 职场文书
辞职信模板(中英文版)
2015/02/27 职场文书
基督教追悼会答谢词
2015/09/29 职场文书
MySQL深度分页(千万级数据量如何快速分页)
2021/07/25 MySQL
java如何实现socket连接方法封装
2021/09/25 Java/Android