在php中,我们可以通过clone和__clone进行克隆对象属性
clone :克隆对象方法
__clone:魔术方法,在使用clone关键字的时候,使用__clone会自动执行该方法
实例
<?php
class clones{
public $name = '我是原内容:php'.'<br>';
public function clone_1(){
echo $this->name;
}
public function __clone(){ //创建魔术方法__clone 并替换到原属性的内容
echo '----------在使用clone关键词进行克隆对象的时候,自动执行该魔术方法------------<br>';
$this->name = 'php中的__clone魔术方法将原来的‘我是原内容:php’替换掉';
}
}
$clones = new clones();
$clones_ke = clone $clones; //使用魔术方法克隆属性
echo $clones -> clone_1();
echo $clones_ke -> clone_1();运行结果
运行步骤
实例化$clones-->将$clones实例使用clone关键字克隆给$clones_ke-->系统检测到有clone关键词,自动执行__clone魔术方法,首先打印出要输出的字符,然后进行属性内容的替换-->然后依次运行$clones和$clones_ke。
在使用clone和__clone进行克隆的时候,我们需要知道,clone关键词是用来直接克隆一整个类,在克隆的时候,可以使用__clone对属性进行处理。





还没有评论,来说两句吧...