我们大家有知道PHP串行化可以把变量包括对象,转化成连续bytes数据,你可以将串行化后的变量存在一个文件里或在网络上传输,然后再反串行化还原为原来的数据。文章这里就PHP串行化为大家详细的介绍。你在反串行化类的对象之前定义的类,PHP可以成功地存储其对象的属性和方法. 有时你可能需要一个对象在反串行化后立即执行。为了这样的目的,PHP会自动寻找__sleep和__wakeup方法。

当一个对象被PHP串行化,PHP会调用__sleep方法(如果存在的话). 在反串行化一个对象后,PHP 会调用__wakeup方法. 这两个方法都不接受参数. __sleep方法必须返回一个数组,包含需要串行化的属性. PHP会抛弃其它属性的值。如果没有__sleep方法,PHP将保存所有属性。

/*

*

* @Authors peng--jun

* @Email 1098325951@qq.com

* @Date 2016-01-23 14:40:38

* @Link http://www.cnblogs.com/xs-yqz/

* @version $Id$

==========================================

*/

header("Content-type: text/html; charset=UTF-8");

class Person{

private $name;

private $sex;

private $age;

function __construct($name,$age,$sex){

$this->name = $name;

$this->age = $age;

$this->sex = $sex;

}

function say(){

echo "我的名字:".$this->name."性别为: ".$this->sex."年龄为:".$this->age;

}

//在类中添加此方法,在串行化的时候自动调用并返回数组

function __sleep(){

$arr = array("name","age");//数组中的成员$name和$age将被串行化,成员$sex则将被忽略。

return($arr);//使用__sleep()方法的时候必须返回一个数组。

}

//在反串行化对象时自动调用该方法,没有参数也没有返回值

function __wakeup(){

$this->age = ;//在重新组织对象的时候,为新对象中的$age属性重新赋值

}

}

$person1 = new Person("张三",,"男");

$person1_string = serialize($person1);

echo $person1_string."
";

//反串行化对象,并自动调用了__wakeup()方法重新为独享中的age赋值。

$person2 = unserialize($person1_string);

$person2->say();

?>

输出的结果为:

O::"Person"::{s::"Personname";s::"张三";s::"Personage";i:;}

我的名字:张三性别为: 年龄为:

2.将串行化的字符串保存到文件中,从文件中读取字符串,反串性化实例。

header("Content-type: text/html; charset=UTF-8");

class Person{

private $name;

private $sex;

private $age;

function __construct($name,$age,$sex){

$this->name = $name;

$this->age = $age;

$this->sex = $sex;

}

function say(){

echo "我的名字:".$this->name."性别为: ".$this->sex."年龄为:".$this->age;

}

}

$person1 = new Person("张三",,"男");

$person1_string = serialize($person1);

file_put_contents("file.txt", $person1_string);

header("Content-type: text/html; charset=UTF-8");

class Person{

private $name;

private $sex;

private $age;

function __construct($name,$age,$sex){

$this->name = $name;

$this->age = $age;

$this->sex = $sex;

}

function say(){

echo "我的名字:".$this->name." 性别为:".$this->sex." 年龄为:".$this->age;

}

}

$person2_string = file_get_contents("file.txt");

$person2 = unserialize($person2_string);//反串性化重新形成对象$person2.

$person2->say();

?>

Java 对象的串行化(Serialization)

1.什么是串行化 对象的寿命通常随着生成该对象的程序的终止而终止.有时候,可能需要将对象的状态保存下来,在需要时再将对象恢复.我们把对象的这种能记录自己的状态以便将来再生的能力.叫作对象的持续性(pe ...

JavaEE 对象的串行化(Serialization)

什么情况下需要序列化 a)当你想把的内存中的对象写入到硬盘的时候:b)当你想用套接字在网络上传送对象的时候:c)当你想通过RMI传输对象的时候:再稍微解释一下:a)比如说你的内存不够用了,那计算机就要 ...

PHP面向对象04_串行化

oop04复习 2014-9-3 10:48:45 要点: --1.克隆对象 --2.__toString( ) --3. __call( ) --4.自动加载类 --5.对象串行化 1.克隆对象以及 ...

MFC如何生成一个可串行化的类

一.MFC允许对象在程序运行的整个过程中持久化的串行化机制 (1)串行化是指向持久化存储媒介(如一个磁盘文件)读或写对象的过程. (2)串行化用于在程序运行过程时或之后修复结构化数据(如C++类或结构 ...

VC++ MFC如何生成一个可串行化的类

一.MFC允许对象在程序运行的整个过程中持久化的串行化机制(1)串行化是指向持久化存储媒介(如一个磁盘文件)读或写对象的过程.(2)串行化用于在程序运行过程时或之后修复结构化数据(如C++类或结构)的 ...

Hadoop基础-Apache Avro串行化的与反串行化

Hadoop基础-Apache Avro串行化的与反串行化 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Apache Avro简介 1>.Apache Avro的来源 ...

MFC【6】文件I/O和串行化

文件输入和输出(I/O)服务是所有操作系统的主要工作.Microsoft Windows提供了各种API函数用来读.写和操作磁盘文件.MFC将这些桉树和CFile类融合在面对对象的模型里.其中CFil ...

java的串行化

参考博客:Java 对象的串行化(Serialization) 1,什么是串行化 对象的寿命通常随着生成该对象的程序的终止而终止.有时候,可能需要将对象的状态保存下来,在需要时再将对象恢复.我们把对象 ...

关于ORACLE的串行化隔离级别--来自ORACLE概念手册

为了描述同时执行的多个事务如何实现数据一致性,数据库研究人员定义了被 称为串行化处理(serializability)的事务隔离模型(transaction  isolation model).当所有 ...

随机推荐

l段子

段子简介 L段子起源.L段子是开发者根据市场调查, 用户可在等候列车,飞机,或在公交车上无 聊之余使用本应用.打发无聊的时间,分为段 子,图片,活动和个人中心,用户可根据自己 喜好进入不同的区域.段子 ...

BZOJ3249 : [ioi2013]game

线段树套Treap 外层的线段树需要动态开节点 内层Treap需要注意的是,相同y坐标的点不一定是同一个点,所以需要再次离散 空间$O(n\log n)$ 时间$O(n\log^2n)$ #inclu ...

Spring 中JCA CCI分析--转载

转载地址:http://blog.csdn.net/a154832918/article/details/6790612 J2EE提供JCA(Java Connector Architecture)规 ...

WinForm RDLC SubReport Step by step

最近在做的一个PO管理系统,因为要用到订单打印,没有用水晶报表,直接使用VS2010的Reporting.参考了网上的一些文章,但因为找到的数据是用于WebForm的,适配到WinForm有点区别,竟 ...

AsyncTask总结(经典,附带源码)

一.整体工程图 二.MainActivity.java package com.jltxgcy.asynctaskdemo; import android.app.Activity; import a ...

Hibernate写配置文件无提示信息解决

把Hibernate的相关jar包引入工程后,在配置hibernate.cfg.xml时没有提示信息,对于开发人员来说,那么多标签,标签有那么多属性,全部都记住显然是不可能的,遇到这种情况是很头疼的事 ...

第一篇 Flask初始

Python 现阶段三大主流Web框架 Django Tornado Flask 对比 1.Django 主要特点是大而全,集成了很多组件,例如: Models Admin Form 等等, 不管你用 ...

Json字符串转map集合

第一步:在pom.xml中添加依赖; com.alibabaf ...

JS之document.cookie详解以及$.cookie的使用

什么是cookie? cookie 是存储于访问者的计算机中的变量.每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie.你可以使用 JavaScript 来创建和取回 cookie ...

thinkpad e系列 装win7过程

电脑买回来时是win8系统,但是卡顿的厉害,装成win7,win8装win7流程还是比较复杂,后来又装成xp,现在又改成win7,记录一下装win7 的过程 我是用光盘安装的系统 第一步:进入boss ...

php 串行化数据,php中对象的串行化相关推荐

  1. Java中对象的串行化(Serialization)和transient关键字

    Java中对象的串行化(Serialization)和transient关键字 前言: 该篇文章参考自网上资料,但是部分内容经过笔者更改,因此算作原创吧,原文地址: http://www.golden ...

  2. java input是关键字吗_Java中对象的串行化(Serialization)和transient关键字 - 金色阳光...

    Java中对象的串行化(Serialization)和transient关键字: 对象的串行化(Serialization) 一.串行化的概念和目的 1.什么是串行化 对象的寿命通常随着生成该对象的程 ...

  3. 重做实验七 寻址方式在结构化数据访问中的应用

    先处理第一行所有数据: ;实验七 寻址方式在结构化数据访问中的应用;编程 将data段中的数据 按照如下格式写到table段中,并计算21年中的人均收入(取整) ;结果也按照下面的格式保存在table ...

  4. 实验七 寻址方式在结构化数据访问中的应用

    下面的程序中,已经定义好了这些数据 ;实验七 寻址方式在结构化数据访问中的应用;编程 将data段中的数据 按照如下格式写到table段中,并计算21年中的人均收入(取整) ;结果也按照下面的格式保存 ...

  5. 解决 王爽写的汇编语言的第七个验七- 寻址方式在结构化数据访问中的应用

    原文: 汇编语言-(第三版) 王爽-著 (实验七) 寻址方式在结构化数据访问中的应用 https://www.52pojie.cn/thread-1241289-1-1.html (出处: 吾爱破解论 ...

  6. 若 PPP 协议使用同步传输技术,接收端收到的数据段中出现比特串“01011111001111101”,则真正的数据应该是()

    若 PPP 协议使用同步传输技术,接收端收到的数据段中出现比特 串"01011111001111101",则真正的数据应该是 (B ) A. 0101111100111111 B. ...

  7. 结构化数据(structured),半结构化数据(semi-structured),非结构化数据(unstructured)

    研究一下分布式架构的实现方式 结构化数据(structured),半结构化数据(semi-structured),非结构化数据(unstructured) 概念 结构化数据:即行数据,存储在数据库里, ...

  8. 结构化数据(structured),半结构化数据(semi-structured),非结构化数据(unstructured)...

    概念 结构化数据:即行数据,存储在数据库里,可以用二维表结构来逻辑表达实现的数据. 半结构化数据:介于完全结构化数据(如关系型数据库.面向对象数据库中的数据)和完全无结构的数据(如声音.图像文件等)之 ...

  9. 结构化数据(structured),半结构化数据(semi-structured),非结构化数据(unstructured)的定义和区别

    相对于结构化数据(即行数据,存储在数据库里,可以用二维表结构来逻辑表达实现的数据)而言,不方便用数据库二维逻辑表来表现的数据即称为非结构化数据,包括所有格式的办公文档.文本.图片.XML.HTML.各 ...

最新文章

  1. vba 编辑combobox内容_初识Visual Basic编辑器并建立一段简单的代码
  2. Centos5.5下安装LAMP完整版
  3. textview 垂直居中_在Textview左边或右边添加图标 ,换行不错位
  4. BZOJ 1612: [Usaco2008 Jan]Cow Contest奶牛的比赛【Floyd】
  5. smarty模版中使用图片的路径问题
  6. [请教]关于超大数据量网站的数据搜索和分页的实现方法
  7. umask详解、cwd简介
  8. A - Greed CodeForces - 892A(水题)
  9. ubuntu修改ssh服务的端口号
  10. 怎么用python画圆柱_python-如何绘制具有非恒定半径的圆柱
  11. ddd架构 无法重构_DDD有什么用?
  12. C++,std::shared_future的使用
  13. setitime和相关函数
  14. 数据库课程设计(学校运动会管理系统)
  15. FIAA固定资产【03资产主数据】
  16. 为软件添加全网排行榜
  17. ModifyStyle()
  18. Ubuntu双显卡切换方法总结
  19. monetDb列式存储架构分析
  20. ARM MIPS PowerPC X86 四大常见处理架构比较

热门文章

  1. Unity 打包和读取AB资源,并播放打包的AB序列图!
  2. 铂涛集团旗下长租公寓品牌窝趣完成近2亿元B轮融资...
  3. 【C语言】C语言标准库大梳理(超全)
  4. 盖茨缔造了微软 英雄们成就了微软
  5. NowCoder052--括号序列
  6. 华为大手机 m3 linux,我的美好生活,从用上华为平板 M3开始
  7. android投屏到windows系统上面,仅仅投屏
  8. 计算机考研大三上准备什么,2020计算机考研:前期复习有三大事项要注意!
  9. 语文前五册词类活用整理
  10. 错误码302重定向问题