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 相关文章推荐
整合了前面的PHP数据库连接类~~做成一个分页类!
Nov 25 PHP
PHP数据缓存技术
Feb 14 PHP
php获得当前的脚本网址
Dec 10 PHP
Zend framework处理一个http请求的流程分析
Feb 08 PHP
php生成图片缩略图的方法
Apr 07 PHP
php获取远程文件大小
Oct 20 PHP
Zend Framework动作助手Url用法详解
Mar 05 PHP
PHP 表单提交及处理表单数据详解及实例
Dec 27 PHP
php与c 实现按行读取文件实例代码
Jan 03 PHP
PHP在linux上执行外部命令的方法
Feb 06 PHP
PHP单例模式实例分析【防继承,防克隆操作】
May 22 PHP
thinkphp5.1框架中容器(Container)和门面(Facade)的实现方法分析
Aug 05 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
Centos7安装swoole扩展操作示例
2020/03/26 PHP
PHP+Redis事务解决高并发下商品超卖问题(推荐)
2020/08/03 PHP
JavaScript 检测浏览器和操作系统的脚本
2008/12/26 Javascript
返回顶部按钮响应滚动且动态显示与隐藏
2014/10/14 Javascript
用JavaScript显示浏览器客户端信息的超相近教程
2015/06/18 Javascript
js实现仿网易点击弹出提示同时背景变暗效果
2015/08/13 Javascript
js上传图片预览的实现方法
2017/05/09 Javascript
Ionic + Angular.js实现图片轮播的方法示例
2017/05/21 Javascript
AngularJS 教程及实例代码
2017/10/23 Javascript
你可能从未使用过的11+个JavaScript特性(小结)
2020/01/08 Javascript
Python捕捉和模拟鼠标事件的方法
2015/06/03 Python
Python使用asyncio包处理并发详解
2017/09/09 Python
pycharm重命名文件的方法步骤
2019/07/29 Python
Python + Flask 实现简单的验证码系统
2019/10/01 Python
python opencv 实现对图像边缘扩充
2020/01/19 Python
彻底搞懂 python 中文乱码问题(深入分析)
2020/02/28 Python
Python脚本破解压缩文件口令实例教程(zipfile)
2020/06/14 Python
python 实现百度网盘非会员上传超过500个文件的方法
2021/01/07 Python
利用css3如何设置没有上下边的列表间隔线
2017/07/03 HTML / CSS
探索HTML5本地存储功能运用技巧
2016/03/02 HTML / CSS
详解canvas绘制网络字体几种方法
2019/08/27 HTML / CSS
中国京东和泰国中央集团合资的网站:JD CENTRAL
2020/08/22 全球购物
什么是唯一索引
2015/07/05 面试题
大学生的创业计划书就该这么写
2014/01/30 职场文书
幼儿园课题实施方案
2014/05/14 职场文书
政府班子四风问题整改措施
2014/10/04 职场文书
党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
2014会计年终工作总结
2014/12/20 职场文书
布达拉宫导游词
2015/02/02 职场文书
区域经理岗位职责
2015/02/02 职场文书
酒店仓管员岗位职责
2015/04/01 职场文书
2015年社区妇联工作总结
2015/04/21 职场文书
风雨哈佛路观后感
2015/06/03 职场文书
婚礼男方父母答谢词
2015/09/29 职场文书
靠谱的活动总结
2019/04/16 职场文书
python 如何在 Matplotlib 中绘制垂直线
2021/04/02 Python