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
<?php
    $str='';
    $array=array('php','数据','持久化');
    $str=serialize($array);//可以将数组$array序列化成字符串并赋值给字符串变量$str
    echo $str;//将输出一串序列化编码后的字符串
    $array=unserialize($str);//可以将之前序列化后的字符串反解析成数组给$array变量.
    print_r($array);
?>

使用上面的方法可以将复杂的数组之类的数组转换成字符串形式持久保存到数据库或文件或session中了.

 
 

php中类的持久化如何实现的更多相关文章

  1. 2.一起来学hibernate之配置文件1与持久化对象

    学框架,配置都是不可少的,有了配置,框架才知道我们想做什么,才知道如何去执行我们需要的操作! hibernate的配置文件,总体来说分为两个部分: 1.主配置文件hibernate.cfg.xml文件 ...

  2. iOS 数据持久化(3):Core Data

    @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css); @import url(/ ...

  3. NO.6:自学python之路------面向对象、内存持久化

    引言 虽然加速学习了,可是还是感觉进度不够快,担心.还得准备毕业论文,真是焦虑. 正文 面向对象 编程是程序员用特定语法+数据结构+算法组成的代码,告诉计算机如何执行任务的过程.对不同的编程方式的特点 ...

  4. java 中类为啥要序列化

    java里为什么要序列化?http://zhidao.baidu.com/link?url=7_wAQ8eAl28vcJPE5OKM5Y0Bo4aINNQokHhRmI9XPszEoTO5QF-gNb ...

  5. scrapy实现数据持久化、数据库连接、图片文件下载及settings.py配置

    数据持久化的两种方式:(1)基于终端指令的持久化存储:(2)基于管道的持久化存储 基于终端指令的持久化存储 在爬虫文件的parse方法中必须要return可迭代对象类型(通常为列表或字典等)的返回值, ...

  6. 如何一步一步用DDD设计一个电商网站(九)—— 小心陷入值对象持久化的坑

    阅读目录 前言 场景1的思考 场景2的思考 避坑方式 实践 结语 一.前言 在上一篇中(如何一步一步用DDD设计一个电商网站(八)—— 会员价的集成),有一行注释的代码: public interfa ...

  7. SQL Server-聚焦计算列或计算列持久化查询性能(二十二)

    前言 上一节我们详细讲解了计算列以及计算列持久化的问题,本节我们依然如前面讲解来看看二者查询性能问题,简短的内容,深入的理解,Always to review the basics. 持久化计算列比非 ...

  8. SQL Server-聚焦计算列持久化(二十一)

    前言 上一节我们结束了Hash Match Aggregate和Stream Aggregate的讲解,本系列我们来讲讲关于SQL Server中的计算列问题,简短的内容,深入的理解,Always t ...

  9. Lind.DDD.LindMQ~关于持久化到Redis的消息格式

    回到目录 关于持久化到Redis的消息格式,主要是说在Broker上把消息持久化的过程中,需要存储哪些类型的消息,因为我们的消息是分topic的,而每个topic又有若干个queue组成,而我们的to ...

随机推荐

  1. 【SRM 717 DIV2 C】DerangementsDiv2

    Problem Statement You are given two ints: n and m. Let D be the number of permutations of the set {1 ...

  2. COGS——T1310. [HAOI2006]聪明的猴子

    http://cogs.pro/cogs/problem/problem.php?pid=1310 ★   输入文件:monkey.in   输出文件:monkey.out   简单对比时间限制:1 ...

  3. 一起talk C栗子吧(第八十一回:C语言实例--进程停止)

    各位看官们,大家好,上一回中咱们说的是进程相互排斥的样例,这一回咱们说的样例是:进程停止.闲话休提,言归正转. 让我们一起talk C栗子吧! 我们在前面的章回中介绍了怎样创建进程,只是没有介绍停止进 ...

  4. Android调试命令总结

    转载表明来源:http://blog.csdn.net/yzzst/article/details/47128581 创业要接地气,GOOGLE.亚马逊.微软在中国做的怎么样,全然取决于他们的本地化程 ...

  5. 怎样安装Windows7操作系统

     1. 打开电脑,插入Windows7安装光盘. 2. 又一次启动电脑: 3. 依据提示按下对应的键.进入选择启动项菜单选择光驱引导.在"Boot Menu"界面按键盘上下键选 ...

  6. 找出一堆数中最小的前K个数

    描写叙述: 给定一个整数数组.让你从该数组中找出最小的K个数 思路: 最简洁粗暴的方法就是将该数组进行排序,然后取最前面的K个数就可以. 可是,本题要求的仅仅是求出最小的k个数就可以,用排序能够但显然 ...

  7. ProFTPD 的 mod_lang模块

    ProFTPD 的 mod_lang模块http://www.proftpd.org/docs/modules/mod_lang.html安装该mod_lang模块随ProFTPD一起分发.要在pro ...

  8. base64格式的图片数据如何转成图片

    base64格式的图片数据如何转成图片 一.总结 一句话总结:不仅要去掉前面的格式串,还需要base64_decode()解码才行. // $base_img是获取到前端传递的值 $base_img ...

  9. C#泛型链表Demo

    /// <summary> /// 节点 /// </summary> /// <typeparam name="T"></typepar ...

  10. 104.virtual虚函数多态与异构数据结构

    #include "mainwindow.h" #include <QApplication> #include <list> #include <Q ...