php中类的持久化如何实现
php中类的持久化如何实现
一、总结
一句话总结:PHP持久化通过serialize() 和 unserialize() 这两个函数来实现的。
1、持久化之后的对象保存到哪里?
将复杂的数组之类的数组转换成字符串形式持久保存到数据库或文件或session中了.
2、为什么Resource类型不支持序列化?
感觉应该是因为resource类型是调用外部资源的原因
这完全是PHP中的Resource类型中指针的缘故
二、php中类的持久化如何实现
持久化定义:
通过将应用程序对象转化成一系列字节流(称 对象序列化),以适应网络传输和保存。
被序列化的对象还可以被重新装配,能够换成原来的形式。
这即意味着,改机制能自动补偿操作系统减的差异,比如在windows上的数据对象被序列化之后,可以通过网络传输到一台Linux系统,准确无误地实现重新装配。
“持久化”可以使应用程序对象不受应用程序运行时间的限制——可以讲一个对象序列化,然后保存到磁盘上,在再次需要使用時进行装配,从而圆满实现一种“持久”效果。
PHP持久化通过serialize() 和 unserialize() 这两个函数来实现的。
在PHP中,几乎任何类型(Integer 、Boolean、Float、Array、Object)的变量都可以被序列化。
仅仅只有Resource类型不支持序列化,这完全是PHP中的Resource类型中指针的缘故。
而String类型,由于它本身就是字节流,所有根本没有序列化的必要。
其实象ASP这样的开发环境也隐藏这种特性,只不过它是通过, 在session 或 Application 对象中保存应用程序对象,这也是一种持久化的表现,不过ASP并没有提供这一特性的显式接口。
三、如何用php实现持久化处理
你是指数据持久化还是运行持久化?如果是数据持久化,可以使用serialize()和unserialize()来处理.
试一试:
|
1
2
3
4
5
6
7
8
|
使用上面的方法可以将复杂的数组之类的数组转换成字符串形式持久保存到数据库或文件或session中了.
php中类的持久化如何实现的更多相关文章
- 2.一起来学hibernate之配置文件1与持久化对象
学框架,配置都是不可少的,有了配置,框架才知道我们想做什么,才知道如何去执行我们需要的操作! hibernate的配置文件,总体来说分为两个部分: 1.主配置文件hibernate.cfg.xml文件 ...
- iOS 数据持久化(3):Core Data
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css); @import url(/ ...
- NO.6:自学python之路------面向对象、内存持久化
引言 虽然加速学习了,可是还是感觉进度不够快,担心.还得准备毕业论文,真是焦虑. 正文 面向对象 编程是程序员用特定语法+数据结构+算法组成的代码,告诉计算机如何执行任务的过程.对不同的编程方式的特点 ...
- java 中类为啥要序列化
java里为什么要序列化?http://zhidao.baidu.com/link?url=7_wAQ8eAl28vcJPE5OKM5Y0Bo4aINNQokHhRmI9XPszEoTO5QF-gNb ...
- scrapy实现数据持久化、数据库连接、图片文件下载及settings.py配置
数据持久化的两种方式:(1)基于终端指令的持久化存储:(2)基于管道的持久化存储 基于终端指令的持久化存储 在爬虫文件的parse方法中必须要return可迭代对象类型(通常为列表或字典等)的返回值, ...
- 如何一步一步用DDD设计一个电商网站(九)—— 小心陷入值对象持久化的坑
阅读目录 前言 场景1的思考 场景2的思考 避坑方式 实践 结语 一.前言 在上一篇中(如何一步一步用DDD设计一个电商网站(八)—— 会员价的集成),有一行注释的代码: public interfa ...
- SQL Server-聚焦计算列或计算列持久化查询性能(二十二)
前言 上一节我们详细讲解了计算列以及计算列持久化的问题,本节我们依然如前面讲解来看看二者查询性能问题,简短的内容,深入的理解,Always to review the basics. 持久化计算列比非 ...
- SQL Server-聚焦计算列持久化(二十一)
前言 上一节我们结束了Hash Match Aggregate和Stream Aggregate的讲解,本系列我们来讲讲关于SQL Server中的计算列问题,简短的内容,深入的理解,Always t ...
- Lind.DDD.LindMQ~关于持久化到Redis的消息格式
回到目录 关于持久化到Redis的消息格式,主要是说在Broker上把消息持久化的过程中,需要存储哪些类型的消息,因为我们的消息是分topic的,而每个topic又有若干个queue组成,而我们的to ...
随机推荐
- 【AHOI2013】【BZOJ3238】差异
Description Input 一行,一个字符串S Output 一行.一个整数.表示所求值 Sample Input cacao Sample Output 54 HINT 2<=N< ...
- Lesson 1 Basic Concepts: Part 2
Getting your web site ‘live’ on the Web With the nerd background details under our belts, we can now ...
- LSTM入门学习——结合《LSTM模型》文章看
摘自:https://zybuluo.com/hanbingtao/note/581764 写得非常好 见原文 长短时记忆网络的思路比较简单.原始RNN的隐藏层只有一个状态,即h,它对于短期的输入非常 ...
- OpenCV与Socket实现树莓派获取摄像头视频至电脑
OpenCV能够为我们带来便捷的图像处理接口,但是其处理速度在一块树莓派上肯定是不尽如人意的.尤其当我们想要使用复杂的算法时,只能把算法托到服务器上才有可能.这里介绍了一种方法,实现树莓派传输Mat至 ...
- Git简介以及与SVN的区别
Git是由著名Linux内核(Kernel)开发者LinusTorvalds为了便利维护Linux而开发的. Git是一个分布式的版本控制系统.作为一个分布式的版本控制系统,在Git中并不存在主库这样 ...
- mybatis:开发环境搭建--增删改查--多表联合查询(多对一)
什么是mybatisMyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索.MyBatis使用简单的XML或 ...
- 回顾Abstract和Virtual的用法
今天坐班车的时候,突然就想起来这俩个货了:仔细缕缕,居然越缕越乱较: 上代码吧: using System; using System.Collections.Generic; using Syste ...
- "getElementsByClassName is not a function" 报错原因
element.getElementsByClassName(""): 返回的含有该类的子元素数组,除了子元素以外的后代元素是获取不到的.要遍历使用,或者.element.getE ...
- [Python] Wikipedia Crawler
import time import urllib import bs4 import requests start_url = "https://en.wikipedia.org/wiki ...
- codeforces 543 C Remembering Strings
题意:若一个字符串集合里的每一个字符串都至少有一个字符满足在i位上,仅仅有它有,那么这个就是合法的,给出全部串的每一个字符修改的花费,求变成合法的最小代价. 做法:dp[i][j].前i个串的状态为j ...