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 使用curl提交json格式数据
Jun 29 PHP
php使浏览器直接下载pdf文件的方法
Nov 15 PHP
Laravel框架数据库CURD操作、连贯操作总结
Sep 03 PHP
新浪SAE搭建PHP项目教程
Jan 28 PHP
php递归创建目录的方法
Feb 02 PHP
php实现中文转数字
Feb 18 PHP
[原创]php实现子字符串位置相互对调互换的方法
Jun 02 PHP
php 反斜杠处理函数addslashes()和stripslashes()实例详解
Dec 25 PHP
php常用字符函数实例小结
Dec 29 PHP
Yii2实现跨mysql数据库关联查询排序功能代码
Feb 10 PHP
在laravel框架中实现封装公共方法全局调用
Oct 14 PHP
七种PHP开发环境搭建工具
Jun 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
一个ORACLE分页程序,挺实用的.
2006/10/09 PHP
dedecms中显示数字验证码的修改方法
2007/03/21 PHP
PHP判断远程图片或文件是否存在的实现代码
2014/02/20 PHP
PHP实现计算器小功能
2020/08/28 PHP
setTimeout和setInterval的浏览器兼容性分析
2007/02/27 Javascript
js程序中美元符号$是什么
2008/06/05 Javascript
SlideView 图片滑动(扩展/收缩)展示效果
2010/08/01 Javascript
JQuery UI的拖拽功能实现方法小结
2012/03/14 Javascript
js 自动播放的实例代码
2013/11/19 Javascript
nodejs读取memcache示例分享
2014/01/02 NodeJs
JSON字符串和对象之间的转换详解
2015/05/26 Javascript
json实现添加、遍历与删除属性的方法
2016/06/17 Javascript
javascript验证内容为数字以及长度为10的简单实例
2016/08/20 Javascript
AngularJS 与百度地图的结合实例
2016/10/20 Javascript
详解angularJs中关于ng-class的三种使用方式说明
2017/06/02 Javascript
JavaScrpt中如何使用 cookie 设置查看与删除功能
2017/07/09 Javascript
微信小程序多列选择器range-key使用详解
2020/03/30 Javascript
JS实现头条新闻的经典轮播图效果示例
2019/01/30 Javascript
Vue3.0的优化总结
2020/10/16 Javascript
把大数据数字口语化(python与js)两种实现
2013/02/21 Python
浅谈Python数据类型判断及列表脚本操作
2016/11/04 Python
Python实现字符串格式化输出的方法详解
2017/09/20 Python
Python实现把多维数组展开成DataFrame
2019/11/30 Python
Selenium获取登录Cookies并添加Cookies自动登录的方法
2020/12/04 Python
Python从MySQL数据库中面抽取试题,生成试卷
2021/01/14 Python
YBF Beauty官网:美丽挚友,美国知名彩妆品牌
2020/11/22 全球购物
酒店服务与管理毕业生求职信
2013/11/02 职场文书
环保建议书300字
2014/05/14 职场文书
文员求职信
2014/07/15 职场文书
教师节学生演讲稿
2014/09/03 职场文书
春节慰问简报
2015/07/21 职场文书
职工的安全责任书范文!
2019/07/02 职场文书
解决Tkinter中button按钮未按却主动执行command函数的问题
2021/05/23 Python
MYSQL 表的全面总结
2021/11/11 MySQL
浅析python中特殊文件和特殊函数
2022/02/24 Python
PYTHON使用Matplotlib去实现各种条形图的绘制
2022/03/22 Python