热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

oop-序列化与反序列化

对象序列化,就是将对象类型的数据,按照某种规则转换成可以被保存的字符串类型的数据,可以利用函数serialize($object)达到效果,返回值是转化后的字符串

对象的保存 与 还原

其他类型的数据的保存,例如:如何保存一个字符串呢?

那么如何保存一个 对象类型的数据呢?

如果需要将对象保存起来,应该将对象 序列化

对象序列化,就是将对象类型的数据,按照某种规则 转换成可以被保存的 字符串类型的数据,可以利用函数serialize($object)达到效果,返回值是转化后的字符串。

对象的序列化:对象--->字符串;

序列化

如何获得?

文件中保存的字符串,我们现在获得是字符串,怎么通过字符串获得相应的对象呢?这个过程刚好与序列化相反, 称之为 反序列化

对象的反序列化 字符串 –>对象

Unserialize();

反序列化

如果在反序列化时没有提供 对象所属的类,会转化成一个对象 ,但是

序列化 

注意:序列化 和 反序列化 不单单适用于 对象数据类型,可以用于其他的所有的数据类型。 在保存数据时,如果不希望丢失数据的数据类型 都可以先对数据进行序列化后再保存。

注意:  在序列化时,资源型数据 将不能完全序列化。如果一个对象的属性是资源,那么这个资源将在 对象被反序列化时 丢失。

如何在反序列化时,将某些资源重新初始化?

在反序列化时,构造方法是不会执行的。有一个专门在 反序列化时执行的魔术方法:

__wakeup()

php技术博客

既然 资源类型的数据需要重新初始化,说明这个数据 根本不需要在序列化给保存起来,于此同时 还有一个 在序列化时执行的 魔术方法,用来清理哪些不需要被保存的数据(属性)

php学习博客

#p#对象用到的操作符#e#


对象用到的操作符

Instanceof 判断一个对象 是否是某个类的实例。

instanceof

如果一个对象是子类的实例,同时 也是父类的实例

php技术博客

对象所涉及的常用函数:

Class_exists(); 类是否存在:

oop

Interface_exists();检查接口是否存在。

Method_exists();检查方法是否存在

面向对象编程

Get_glass()返回对象的类:

php教程

Get_parent_class();//返回父类名

面向对象

对象属性的遍历操作:

就像数组一样操作即可,同样受访问权限控制

php学习笔记

如果在类内怎么遍历:

类属性的遍历

注意:__autoload(); 凡是用到类,但是类没有被载入 ,都会自动调用__autoload()函数。

autoload函数

推荐阅读
  • 本文详细介绍了优化DB2数据库性能的多种方法,涵盖统计信息更新、缓冲池调整、日志缓冲区配置、应用程序堆大小设置、排序堆参数调整、代理程序管理、锁机制优化、活动应用程序限制、页清除程序配置、I/O服务器数量设定以及编入组提交数调整等方面。通过这些技术手段,可以显著提升数据库的运行效率和响应速度。 ... [详细]
  • 利用Selenium与ChromeDriver实现豆瓣网页全屏截图
    本文介绍了一种使用Selenium和ChromeDriver结合Python代码,轻松实现对豆瓣网站进行完整页面截图的方法。该方法不仅简单易行,而且解决了新版Selenium不再支持PhantomJS的问题。 ... [详细]
  • 解决TensorFlow CPU版本安装中的依赖问题
    本文记录了在安装CPU版本的TensorFlow过程中遇到的依赖问题及解决方案,特别是numpy版本不匹配和动态链接库(DLL)错误。通过详细的步骤说明和专业建议,帮助读者顺利安装并使用TensorFlow。 ... [详细]
  • 本文详细介绍了在XAMPP环境中如何修改Apache和MySQL的默认端口号,并确保WordPress能够正常访问。同时,提供了针对Go语言社区和Golang开发者的相关建议。 ... [详细]
  • 澄清对 IN 语句索引使用常见误解
    本文旨在纠正关于 MySQL 中 IN 语句是否使用索引的常见误解。许多人认为 IN 语句的索引使用与字符串长度有关,实际上,影响因素更为复杂,包括数据分布和 MySQL 版本等因素。 ... [详细]
  • PHP 实现多级树形结构:构建无限层级分类系统
    在众多管理系统中,如菜单、分类和部门等模块,通常需要处理层级结构。为了高效管理和展示这些层级数据,本文将介绍如何使用 PHP 实现多级树形结构,并提供代码示例以帮助开发者轻松实现无限分级。 ... [详细]
  • This article explains how to check if a given string consists solely of English characters, including letters and numbers. It provides a practical PHP function for this purpose. ... [详细]
  • 工作后体重逐渐增加,尽管尚未达到令人担忧的程度,但对于热爱运动的人来说,这一变化难以接受。经过长时间的考虑,我决定重新制定减重计划,以恢复最佳的身体状态。 ... [详细]
  • 本文探讨如何配置 Nginx 以将传入请求反向代理到运行在本地绑定端口上的 Docker 容器,并解决常见的路径重定向问题。 ... [详细]
  • 12月16日JavaScript变量、函数、流程、循环等***线上九期班
    12月16日JavaScript变量、函数、流程、循环等***线上九期班 ... [详细]
  • 卫青与汉武帝的君臣关系及家族命运
    本文探讨了卫青与汉武帝之间的特殊关系,以及卫青去世后其家族的命运。卫青不仅是汉武帝的重要将领,还通过婚姻关系成为皇亲国戚。然而,卫青去世后,其家族并未立即遭到灭顶之灾,而是逐渐因政治风波受到牵连。 ... [详细]
  • 如何在AE中创建裂变式加载动画
    本文将详细介绍如何使用Adobe After Effects (AE) 制作一个裂变式加载动画。通过简单的步骤,您可以轻松创建出引人注目的转圈式加载效果。 ... [详细]
  • 本文详细介绍了如何在PHP中进行数组删除、清空等操作,并提供了在Visual Studio Code中创建PHP文件的步骤。 ... [详细]
  • 探索新一代API文档工具,告别Swagger的繁琐
    对于后端开发者而言,编写和维护API文档既繁琐又不可或缺。本文将介绍一款全新的API文档工具,帮助团队更高效地协作,简化API文档生成流程。 ... [详细]
  • 实现自定义组件的多值v-model双向绑定
    探讨如何在自定义组件中实现多个输入框与父组件数据的动态双向绑定,确保组件内部多个值的变化能实时反映到父组件的数据中。 ... [详细]
author-avatar
amroc_394
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有