在前面的PHP面向对象之对象和引用,我们试图以"$b=$a"的方式复制对象以传递对象的值(内容),结果却是传递对象的地址,在结尾为了解决复制对象这个问题,提到了克隆的方法。接下来讲一下php面向对象之克隆对象。
前面我们已经知道,使用传址引用的方式调用对象,实质调用的是同一个对象,有时需要建设立一个对象的副本,改变原来的对象时不希望影响到副本,在PHP中可以根据现在的对象来克隆出一个完全一样的对象,克隆出来的副本和原本两个对象完全独立而互不干扰。
对象克隆
在php中使用"clone"关键字来克隆对象。
01 |
<?php |
02 |
class Person {
|
03 |
public $name;
|
04 |
|
05 |
function __construct($name="" ) {
|
06 |
$this->name =$name;
|
07 |
|
08 |
}
|
09 |
function say() {
|
10 |
echo "我叫:". $this->name ."<br>" ;
|
11 |
}
|
12 |
}
|
13 |
$Person=new Person( "张三");
|
14 |
$Person1=clone $Person; //使用clone关键字克隆(复制)对象,创建一个对象的副本
|
15 |
// $Person1=$Person //这不是复制对象,而是为对象多复制出一个访问该对象的引用
|
16 |
$Person->say();
|
17 |
$Person1->say();
|
18 |
|
19 |
?> |