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