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在XP下IIS和Apache2服务器上的安装
Sep 05 PHP
PHP脚本中include文件出错解决方法
Nov 20 PHP
PHP中header和session_start前不能有输出原因分析
Jan 11 PHP
php对数组排序代码分享
Feb 24 PHP
PHP 正则表达式常用函数
Aug 17 PHP
PHP把MSSQL数据导入到MYSQL的方法
Dec 27 PHP
php内嵌函数用法实例
Mar 20 PHP
php实现复制移动文件的方法
Jul 29 PHP
解析PHP的Yii框架中cookie和session功能的相关操作
Mar 17 PHP
PHP Laravel 上传图片、文件等类封装
Aug 16 PHP
深入理解 PHP7 中全新的 zval 容器和引用计数机制
Oct 15 PHP
详解laravel passport OAuth2.0的4种模式
Nov 04 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
php判断上传的Excel文件中是否有图片及PHPExcel库认识
2013/01/11 PHP
php+mysqli事务控制实现银行转账实例
2015/01/29 PHP
php动态读取数据清除最右边距的方法
2017/04/12 PHP
php mysql PDO 查询操作的实例详解
2017/09/23 PHP
js css样式操作代码(批量操作)
2009/10/09 Javascript
jQuery AJAX 调用WebService实现代码
2010/03/24 Javascript
增强用户体验友好性之jquery easyui window 窗口关闭时的提示
2012/06/22 Javascript
Mac地址验证的javascript代码
2013/11/09 Javascript
js获取客户端网卡的IP地址、MAC地址
2014/03/26 Javascript
两种方法基于jQuery实现IE浏览器兼容placeholder效果
2014/10/14 Javascript
轻量级的原生js日历插件calendar.js使用指南
2015/04/28 Javascript
jquery判断单选按钮radio是否选中的方法
2015/05/05 Javascript
js实现鼠标移到链接文字弹出一个提示层的方法
2015/05/11 Javascript
javaScript数组迭代方法详解
2016/04/14 Javascript
Summernote实现图片上传功能的简单方法
2016/07/11 Javascript
[原创]jQuery常用的4种加载方式分析
2016/07/25 Javascript
微信小程序 保留小数(toFixed)详细介绍
2016/11/16 Javascript
微信小程序实现手势图案锁屏功能
2018/01/30 Javascript
详解js location.href和window.open的几种用法和区别
2019/12/02 Javascript
微信小程序实现签字功能
2019/12/23 Javascript
Python中的lstrip()方法使用简介
2015/05/19 Python
python leetcode 字符串相乘实例详解
2018/09/03 Python
Python提取支付宝和微信支付二维码的示例代码
2019/02/15 Python
pytorch 固定部分参数训练的方法
2019/08/17 Python
python3 pillow模块实现简单验证码
2019/10/31 Python
python中re模块知识点总结
2021/01/17 Python
纯CSS3大转盘抽奖示例代码(响应式、可配置)
2017/01/13 HTML / CSS
日本航空官方网站:JAL
2019/06/19 全球购物
WEB控件及HTML服务端控件能否调用客户端方法?如果能,请解释如何调用?
2015/08/25 面试题
后勤副校长自我鉴定
2013/10/13 职场文书
推广普通话标语
2014/06/27 职场文书
讲文明知礼仪演讲稿
2014/09/13 职场文书
委托书的样本
2015/01/28 职场文书
招商银行工作证明
2015/06/17 职场文书
培训计划通知
2015/07/15 职场文书
Golang MatrixOne使用介绍和汇编语法
2022/04/19 Golang