把对象串行化 有时候需要把一个对象在网络上传输,为了方便传输,可以把整个对象转化为二进制串, 等到达另一端时,再还原为原来的对象,这个过程称之为串行化,就像我们现在想把一辆汽 车通过轮船运到美国去,因为汽车的体积比较大,我们可以把汽车拆开成小的部件,然后我们把这些部件通过轮般运到美国去,到了美国再把这些部件组装回汽车。 有两种情况我们必须把对象串行化,第一种情况就是把一个对象在网络中传输的时候要 将对象串行化,第二种情况就是把对象写入文件或是数据库的时候用到串行化。 串行化有两个过程,一个是串行化,就是把对象转化为二进制的字符串,我们使用 serialize()函数来串行化一个对象,另一个是反串行化,就是把对象转化的二进制字符串再转 化为对象, 我们使用unserialize()函数来反串行化一个对象。 PHP 中serialize()函数的参数为对象名,返回值为一个字符串,Serialize()返回的字符串 含义模糊,一般我们不会解析这个串来得到对象的信息,我们只要把返回来的这个字符串传 到网络另一端或是保存到方件中即可。 PHP 中unserialize()函数来反串行化对象,这个函数的参数即为serialize()函数的返回值, 输出当然是重新组织好的对象。代码片段 上例输出结果: 代码片段 O:6:"Person":3:{s:4:"name";s:4:"张三";s:3:"sex";s:2:"男";s:3:"age";i:;} 我的名子叫:张三性别:男我的年龄是: 在php5 中有两个魔术方法__sleep()方法和__wakeup()方法,在对象串行化的时候,会调用 一个__sleep()方法来完成一些睡前的事情;而在重新醒来,即由二进制串重新组成一个对象 的时候,则会自动调用PHP 的另一个函数__wakeup(),做一些对象醒来就要做的动作。 __sleep()函数不接受任何参数,但返回一个数组,其中包含需要串行化的属性。末被包 含的属性将在串行化时被忽略,如果没有__sleep()方法,PHP 将保存所有属性。 代码片段 上例输出值为: 执行结果 O:6:"Person":2:{s:4:"name";s:4:"张三";s:3:"age";i:;} 我的名子叫:张三性别:我的年龄是:
推荐整理分享php面向对象全攻略 (十六) 对象的串行化(php面向对象优点,缺点),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:php面向对象的三大特征,php面向对象和面向过程,php面向对象编程,php面向对象的三大特征,php 面向对象,php面向对象是什么意思,php 面向对象,php面向对象编程,内容如对您有帮助,希望把文章链接给更多的朋友!
php面向对象全攻略 (十七) 自动加载类 自动加载类很多开发者写面向对象的应用程序时,对每个类的定义建立一个PHP源文件。一个很大的烦恼是不得不在每个脚本(每个类一个文件)开头写
PHP parse_url 一个好用的函数 举例子如下:$url="
PHP教程 基本语法 PHP的脚本块以?php开始,以?结束。您可以把PHP的脚本块放置在文档中的任何位置。当然,在支持简写的服务器上,您可以使用?和?来开始和结束脚本块。