文档章节

对象序列化学习笔记

LouisWeb
 LouisWeb
发布于 2016/08/05 04:18
字数 438
阅读 34
收藏 0

需要掌握的函数

 

unserialize   serialize 

 

对象序列化的好处?

由于php对象是用数组来模拟的,因此我们把对象转为数组,就能看到这个对象所拥有的属性了。

 

class a{

    private $name;

 

    private $age;

 

    protected function getName()

    {

        return $this->name;

    }

 

}

 

class b extends a{

 

}

 

$b = new b;

print_r((array)$b);exit;

 

什么叫序列化?

所谓序列化,就是把保存在内存中的各种对象状态(属性)保存起来,并且在需要时可以还原出来。

注意:在序列化和反序列化时都需要包含类的对象的定义,不然会出现反序列化对象时,找不到该对象类的定义的错误

 

ect(__PHP_Incomplete_Class)#1 (3) { ["__PHP_Incomplete_Class_Name"]=> string(1) "b" ["name":"a":private]=> NULL ["age":"a":private]=> NULL } NULL

 

php手册上面的代码实例

 

<?php

// classa.inc:

 

  class A {

      public $one = 1;

 

      public function show_one() {

          echo $this->one;

      }

  }

 

// page1.php:

 

  include("classa.inc");

 

  $a = new A;

  $s = serialize($a);

  // 把变量$s保存起来以便文件page2.php能够读到

  file_put_contents('store', $s);

 

// page2.php:

 

  // 要正确了解序列化,必须包含下面一个文件

  include("classa.inc");

 

  $s = file_get_contents('store');

  $a = unserialize($s);

 

  // 现在可以使用对象$a里面的函数 show_one()

  $a->show_one();

?>

 

序列化,保存的对象数据都是包含改变过的属性的。也就是序列化的对象是保存特有属性值的,保存方法的方法是一致的

 

object(a)#1 (2) { ["name":"a":private]=> int(10) ["age":"a":private]=> NULL } NULL

对象序列化后,存储的只是对象的属性。类是由属性和方法组成的,而对象则是属性的结合,由同一个类生成的不同对象,拥有各自不同的属性,但共享了类的代码空间中方法区域的代码

© 著作权归作者所有

共有 人打赏支持
LouisWeb
粉丝 7
博文 61
码字总数 18385
作品 0
深圳
后端工程师
私信 提问
Go圣经-学习笔记之复合类型(三)

上一篇 Go圣经-学习笔记之复合类型(二) 下一篇 Go圣经-学习笔记之函数和错误处理 json数据的序列化和反序列化 json的全称是Javascript object notation, 中文全称:js对象表示法。在序列化和...

cdh0805010
2017/10/24
0
0
java 对象序列化

对象的序列化:把一个Object对象直接转化为字节流,然后把它写入到硬盘上的一个二进制文件或者通过网络传输,同样的,我们可以把这个二进制文件读入到内存,然后用来初始化一个对象,需要序列...

醉风林天
2017/05/07
0
0
条理性解读JAVA对象序列化的用途

一、什么是JAVA对象序列化? 序列化分为两大部分:序列化和反序列化。 java对象序列化就是将对象的状态转换成字节流,以后可以通过这些值再生成相同状态的对象!以便存储在文件中或在网络上传...

ZhakyMing
2016/10/21
19
0
Java for Web学习笔记(八八):消息和集群(3)序列化Serializable

对象序列化 在集群中,涉及到数据在不同的app,不同的JVM,不同的机器之间的。Java通过对象的序列化实现对象在不同app之间传递。在进一步探讨集群之前,我们需要对序列化进行了解。推荐阅读 ...

flowingflying
2017/11/10
0
0
xStream 学习笔记 - Java对象与XML相互转换简单示例

官网地址:http://x-stream.github.io/download.html 下载地址:http://repo.maven.apache.org/maven2/com/thoughtworks/xstream/xstream/ 文档地址:http://x-stream.github.io/javadoc/ind......

kindcao
2016/06/02
51
0

没有更多内容

加载失败,请刷新页面

加载更多

Navicat怎样导入Excel表格和txt文本的数据

Navicat怎样导入Excel表格和txt文本的数据 2018年07月02日 11:29:11 零碎de記憶 阅读数:2433 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_39135287/ar...

linjin200
7分钟前
0
0
使用MaxCompute Java SDK运行安全相关命令

使用MaxCompute Console的同学,可能都使用过MaxCompute安全相关的命令。官方文档上有详细的MaxCompute 安全指南 ,并给出了安全相关语句汇总 。 简而言之, 权限管理 、 列级别访问控制 、 ...

阿里云云栖社区
12分钟前
0
0
中小公司的Java工程师应该如何逆袭冲进BAT?

(1)80% Java工程师都有的迷茫 这篇文章,跟大家聊一聊很多很多很多人问我的一个问题:中小公司的Java工程师应该如何规划准备,才能跳槽进入BAT这类一线互联网公司? 之所以我用了三个 “很...

Java填坑路
13分钟前
1
0
你的应用够安全吗?绿标2.0隐私权限详解

近日,最新一期的《绿色应用达标率调查报告》结果显示,应用在安全方面的通过率仅为57%,相较于其他四项标准通过率最低。其中隐私权限的过度获取是主要原因之一,需要开发者尽快完成整改。 ...

安卓绿色联盟
23分钟前
0
0
使用MaxCompute Java SDK运行安全相关命令

使用MaxCompute Console的同学,可能都使用过MaxCompute安全相关的命令。官方文档上有详细的MaxCompute安全指南,并给出了安全相关语句汇总。 简而言之,权限管理、列级别访问控制、项目空间...

阿里云官方博客
28分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部