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 相关文章推荐
用cookies来跟踪识别用户
Oct 09 PHP
不用数据库的多用户文件自由上传投票系统(2)
Oct 09 PHP
PHP图片上传类带图片显示
Nov 25 PHP
php正则校验用户名介绍
Jul 19 PHP
Zend studio for eclipse中使php可以调用mysql相关函数的设置方法
Oct 13 PHP
php_screw 1.5:php加密: 安装与使用详解
Jun 20 PHP
php实现的ping端口函数实例
Nov 12 PHP
PHP Hash算法:Times33算法代码实例
May 13 PHP
详解PHP的Laravel框架中Eloquent对象关系映射使用
Feb 26 PHP
基于Swoole实现PHP与websocket聊天室
Aug 03 PHP
PHP常用字符串函数小结(推荐)
Aug 05 PHP
PHP下用Swoole实现Actor并发模型的方法
Jun 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
一个可以找出源代码中所有中文的工具
2006/10/25 PHP
php下检测字符串是否是utf8编码的代码
2008/06/28 PHP
利用php绘制饼状图的实现代码
2013/06/07 PHP
PHP实现QQ登录实例代码
2016/01/14 PHP
利用PHP判断是手机移动端还是PC端访问的函数示例
2017/12/14 PHP
php记录搜索引擎爬行记录的实现代码
2018/03/02 PHP
PHP一致性hash分布式算法封装类定义与用法示例
2018/08/04 PHP
PDO::query讲解
2019/01/29 PHP
javascript 节点遍历函数
2010/03/28 Javascript
基于jQuery的输入框在光标位置插入内容, 并选中
2011/10/29 Javascript
js 剪切板的用法(clipboardData.setData)与js match函数介绍
2013/11/19 Javascript
JS求平均值的小例子
2013/11/29 Javascript
JavaScript中的数学运算介绍
2014/12/29 Javascript
javascript实现全角与半角字符的转换
2015/01/07 Javascript
jquery中val()方法是从最后一个选项往前读取的
2015/09/06 Javascript
vue中使用ueditor富文本编辑器
2018/02/08 Javascript
一秒学会微信小程序制作table表格
2019/02/14 Javascript
jquery分页优化操作实例分析
2019/08/23 jQuery
基于Nuxt.js项目的服务端性能优化与错误检测(容错处理)
2019/10/23 Javascript
vue-cli3使用mock数据的方法分析
2020/03/16 Javascript
javascript设计模式 ? 组合模式原理与应用实例分析
2020/04/14 Javascript
全局安装 Vue cli3 和 继续使用 Vue-cli2.x操作
2020/09/08 Javascript
在nuxt中使用路由重定向的实例
2020/11/06 Javascript
[05:17]DOTA2睡衣妹卖萌求签名 CJ第二天全明星影像
2013/07/28 DOTA
[03:09]显微镜下的DOTA2第一期——带你走进华丽的DOTA2世界
2014/06/20 DOTA
python音频处理用到的操作的示例代码
2017/10/27 Python
python中sys.argv函数精简概括
2018/07/08 Python
一行代码让 Python 的运行速度提高100倍
2018/10/08 Python
Python GUI编程学习笔记之tkinter事件绑定操作详解
2020/03/30 Python
用Python开发app后端有优势吗
2020/06/29 Python
python与js主要区别点总结
2020/09/13 Python
思想作风建设心得体会
2014/10/22 职场文书
大学运动会加油稿
2015/07/22 职场文书
少先队中队工作总结
2015/08/14 职场文书
SQLServer权限之只开启创建表权限
2022/04/12 SQL Server
BCL经典机 SONY ICF-5900W电路分析
2022/04/24 无线电