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 相关文章推荐
为php4加入动态flash文件的生成的支持
Oct 09 PHP
php中serialize序列化与json性能测试的示例分析
Apr 27 PHP
解析PHPExcel使用的常用说明以及把PHPExcel整合进CI框架的介绍
Jun 24 PHP
PHP动态规划解决0-1背包问题实例分析
Mar 23 PHP
php生成PDF格式文件并且加密
Jun 22 PHP
php实现的简单美国商品税计算函数
Jul 13 PHP
php中删除、清空session的方式总结
Oct 09 PHP
php实现smarty模板无限极分类的方法
Dec 07 PHP
thinkPHP+phpexcel实现excel报表输出功能示例
Jun 06 PHP
Thinkphp3.2简单解决多文件上传只上传一张的问题
Sep 26 PHP
laravel 中某一字段自增、自减的例子
Oct 11 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
Nov 23 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
DISCUZ在win2003环境下 Unable to access ./include/common.inc.php in... 的问题终极解决方案
2011/11/21 PHP
Zend Framework动作助手Redirector用法实例详解
2016/03/05 PHP
PHP微信分享开发详解
2017/01/14 PHP
CI框架简单分页类用法示例
2020/06/06 PHP
精心挑选的12款优秀的基于jQuery的手风琴效果插件和教程
2012/08/22 Javascript
JavaScript中创建类/对象的几种方法总结
2013/11/29 Javascript
jQuery+ajax实现鼠标单击修改内容的思路
2014/06/29 Javascript
Js删除数组中某一项或几项的几种方法(推荐)
2016/07/27 Javascript
BootStrap Validator对于隐藏域验证和程序赋值即时验证的问题浅析
2016/12/01 Javascript
js如何获取网页所有图片
2017/05/12 Javascript
js实现移动端轮播图效果
2020/12/09 Javascript
浅谈在Vue-cli里基于axios封装复用请求
2017/11/06 Javascript
vue 自定义 select内置组件
2018/04/10 Javascript
关于Js中new操作符的作用详解
2021/02/21 Javascript
Python可跨平台实现获取按键的方法
2015/03/05 Python
自动化Nginx服务器的反向代理的配置方法
2015/06/28 Python
Python把csv数据写入list和字典类型的变量脚本方法
2018/06/15 Python
Django静态资源部署404问题解决方案
2020/05/11 Python
Python+Django+MySQL实现基于Web版的增删改查的示例代码
2020/05/13 Python
Python实现封装打包自己写的代码,被python import
2020/07/12 Python
区分python中的进程与线程
2020/08/13 Python
cookies应对python反爬虫知识点详解
2020/11/25 Python
Prometheus开发中间件Exporter过程详解
2020/11/30 Python
美国彩妆品牌:Coastal Scents
2017/04/01 全球购物
美国波道夫·古德曼百货官网:Bergdorf Goodman
2017/11/07 全球购物
英国女鞋购物网站:Moda in Pelle
2019/02/18 全球购物
大学应届毕业生个人求职信
2013/09/23 职场文书
思想汇报范文
2013/11/04 职场文书
《青山处处埋忠骨》教学反思
2014/04/22 职场文书
乡文化站暑期培训方案
2014/08/28 职场文书
2014年办公室文秘工作总结
2014/12/09 职场文书
开学随笔
2015/08/15 职场文书
浅析NIO系列之TCP
2021/06/15 Java/Android
利用Python判断整数是否是回文数的3种方法总结
2021/07/07 Python
springboot实现string转json json里面带数组
2022/06/16 Java/Android
如何利用python创作字符画
2022/06/25 Python