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代码
Aug 08 PHP
ThinkPHP3.0略缩图不能保存到子目录的解决方法
Sep 30 PHP
ThinkPHP3.1新特性之对页面压缩输出的支持
Jun 19 PHP
smarty简单入门实例
Nov 28 PHP
PHPExcel读取EXCEL中的图片并保存到本地的方法
Feb 14 PHP
PHP多线程编程之管道通信实例分析
Mar 07 PHP
PHP解压tar.gz格式文件的方法
Feb 14 PHP
Zend Framework教程之Zend_Registry对象用法分析
Mar 22 PHP
php $_SESSION会员登录实例分享
Jan 19 PHP
支付宝服务窗API接口开发php版本
Jul 20 PHP
PHP常用日期加减计算方法实例小结
Jul 31 PHP
jQuery ajax+PHP实现的级联下拉列表框功能示例
Feb 12 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
ThinkPHP之getField详解
2014/06/20 PHP
PHP 5.3新增魔术方法__invoke概述
2014/07/23 PHP
Laravel 中创建 Zip 压缩文件并提供下载的实现方法
2019/04/02 PHP
基于jQuery的图片左右无缝滚动插件
2012/05/23 Javascript
addEventListener和attachEvent二者绑定的执行函数中的this不相同
2012/12/09 Javascript
表单验证的完整应用案例探讨
2013/03/29 Javascript
获取表单控件原始(初始)值的方法
2013/08/21 Javascript
javascript将浮点数转换成整数的三个方法
2014/06/23 Javascript
jQuery获得document和window对象宽度和高度的方法
2015/03/25 Javascript
js实现索引图片切换效果
2015/11/21 Javascript
Sublime Text 3常用插件及安装方法
2015/12/16 Javascript
jQuery常用样式操作实例分析(获取、设置、追加、删除、判断等)
2016/09/08 Javascript
基于JS分页控件实现简单美观仿淘宝分页按钮效果
2016/11/07 Javascript
AngularJS监听路由变化的方法
2017/03/07 Javascript
微信小程序 五星评价功能的实现
2017/03/09 Javascript
基于JavaScript定位当前的地理位置
2017/04/11 Javascript
基于vue+axios+lrz.js微信端图片压缩上传方法
2019/06/25 Javascript
微信小程序实现左侧滑动导航栏
2020/04/08 Javascript
Python标准库之多进程(multiprocessing包)介绍
2014/11/25 Python
python通过定义一个类实例作为ftp回调方法
2015/05/04 Python
Python中利用aiohttp制作异步爬虫及简单应用
2018/11/29 Python
Python设计模式之外观模式实例详解
2019/01/17 Python
如何让python的运行速度得到提升
2020/07/08 Python
Ann Taylor官方网站:美国最大的女性产品制造商之一
2016/09/14 全球购物
北美最大的零售退货翻新商:VIP Outlet
2019/11/21 全球购物
业务员薪酬管理制度
2014/01/15 职场文书
优秀民警事迹材料
2014/01/29 职场文书
文艺晚会策划方案
2014/06/11 职场文书
兽医医药专业求职信
2014/07/27 职场文书
2014年小学图书室工作总结
2014/12/09 职场文书
五年级小学生评语
2014/12/26 职场文书
南京大屠杀观后感
2015/06/02 职场文书
五星红旗迎风飘扬观后感
2015/06/17 职场文书
英语读书笔记
2015/07/02 职场文书
创新创业项目计划书该怎样写?
2019/08/13 职场文书
使用opencv-python如何打开USB或者笔记本前置摄像头
2022/06/21 Python