PHP中$this和$that指针使用实例
PHP5中定义了一个特殊的方法名“__clone()”方法,是在对象克隆时自动调用的方法,用“__clone()”方法将建立一个与原对象拥有相同属性和方法的对象,如果想在克隆后改变原对象的内容,需要在__clone()中重写原本的属性和方法,“__clone()”方法可以没有参数,它自动包含$this和$that两个指针,$this指向复本,而$that指向原本,具体实例如下:
<?php classPerson{ //下面是人的成员属性 var$name;//人的名字 var$sex;//人的性别 var$age;//人的年龄 //定义一个构造方法参数为属性姓名$name、性别$sex和年龄$age进行赋值 //function__construct($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>"; } //对象克隆时自动调用的方法,如果想在克隆后改变原对象的内容,需要在__clone()中重写原来的属性和方法。 function__clone(){ //$this指的复本p2,而$that是指向原本p1,这样就在本方法里,改变了复本的属性。 $this->name="我是复制的张三$that->name"; //$this->age=30; } } $p1=newPerson("张三","男",20); $p2=clone$p1; $p1->say(); $p2->say(); ?>
成功运行此PHP程序后的结果如下:
我的名字叫:张三性别:男我的年龄是:20 我的名字叫:我是复制的张三性别:男我的年龄是:20