JSON

serialize序列化和json(2)

字号+ 作者:H5之家 来源:H5之家 2016-05-26 10:04 我要评论( )

我的名子叫:张三性别:男我的年龄是:20 在PHP5中有两个魔术方法__sleep()方法和__wakeup()方法,在对象串行化的时候,会调用一个__sleep()方法来完成一 些睡前的事情;而在重新醒来,即由二进制串重新组成一个对

我的名子叫:张三性别:男我的年龄是:20

在PHP5中有两个魔术方法__sleep()方法和__wakeup()方法,在对象串行化的时候,会调用一个__sleep()方法来完成一 些睡前的事情;而在重新醒来,即由二进制串重新组成一个对象的时候,则会自动调用PHP的另一个函数__wakeup(),做一些对象醒来就要做的动作。

__sleep()函数不接受任何参数,但返回一个数组,其中包含需要串行化的属性。末被包含的属性将在串行化时被忽略,如果没有__sleep()方法,PHP将保存所有属性。


[html]view plaincopy

<? classPerson { //下面是人的成员属性 var$name;//人的名子 var$sex;//人的性别 var$age;//人的年龄 //定义一个构造方法参数为属性姓名$name、性别$sex和年龄$age进行赋值 function__construct($name="",$sex="",$age=""){ $this->name=$name; $this->sex=$sex; $this->age=$age; } //这个人可以说话的方法,说出自己的属性 functionsay(){ echo"我的名子叫:".$this->name."性别:".$this->sex."我的年龄是:".$this->age."<br>"; } //指定串行化时把返回的数组中$name和$age值串行化,忽略没在数组中的属性$sex function__sleep(){ $arr=array("name","age");//此时,属性$sex将被删除!!! return($arr); } //重新生成对象时,并重新赋值$age为40 function__wakeup(){ $this->age=40; } } $p1=newPerson("张三","男",20); //把一个对象串行化,返一个字符串,调用了__sleep()方法,忽略没在数组中的属性$sex $p1_string=serialize($p1); echo$p1_string."<br>";//串行化的字符串我们通常不去解析 $p2=unserialize($p1_string);//反串行化形成对象$p2重新赋值$age为40 $p2->say(); ?>


上例输出值为:


[php]view plaincopy

O:6:”Person”:2:{s:4:”name”;s:4:”张三”;s:3:”age”;i:20;} 我的名子叫:张三性别:我的年龄是:40

转自

以上就是serialize序列化和json的全文介绍,希望对您学习和使用php有所帮助.

这些内容可能对你也有帮助

更多PHP教程可查看PHP教程列表页。

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • json_encode 中文显示问题解决方法

    json_encode 中文显示问题解决方法

    2016-05-26 11:00

  • 文档资料共享网

    文档资料共享网

    2016-05-25 13:00

  • json学习心得

    json学习心得

    2016-05-25 12:04

  • ajax post json提交数据

    ajax post json提交数据

    2016-05-25 10:01

网友点评