千家信息网

克隆对象clone

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,在PHP中可以根据现有的对象克隆初一个完全一样的对象,克隆以后,原本和副本两个对象完全独立,互不干扰。
千家信息网最后更新 2026年11月01日克隆对象clone

在PHP中可以根据现有的对象克隆初一个完全一样的对象,克隆以后,原本和副本两个对象完全独立,互不干扰。

class person{

private $name;

private $sex;

private $age;


function __construct($name="",$sex="",$age=""){

$this->name=$name;

$this->sex=$sex;

$this->age=$age;

}


function say(){

echo "我的名字:".$this->name.";性别:".$this->sex.";年龄:".$this->age."
";

}

}

$person1=new person("张三","男","40");

$person2=clone $person1;


$person1->say();

$person2->say();

?>

代码运行结果是:


如果需要对克隆后的副本对象在克隆时重新为成员属性赋初值,,则可以在类中声明一个魔术方法__clone()。该方法是在对象克隆时自动调用的,所以就可以通过此方法对克隆后的副本重新初始化。__clone()方法不需要任何参数,该方法中自动包含$this和$that两个对象的引用,$this是副本对象的引用,而$that是原本对象的引用。

class person{

private $name;

private $sex;

private $age;


function __construct($name="",$sex="",$age=""){

$this->name=$name;

$this->sex=$sex;

$this->age=$age;

}


function __clone(){

$this->name="张三";

$this->sex="女";

$this->age="20";

}


function say(){

echo "我的名字:".$this->name.";性别:".$this->sex.";年龄:".$this->age."
";

}

}

$person1=new person("张三","男","40");

$person2=clone $person1;


$person1->say();

$person2->say();

?>

代码运行结果是:


对象 副本 方法 张三 两个 代码 原本 名字 年龄 性别 结果 运行 初值 参数 可以通过 属性 成员 是在 此方法 魔术 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州为想互联网科技有限公司 互联网是不是新科技 互联网巨头反垄断金融科技 中资互联网科技 华宇互联网科技 互联网科技股票 唐信互联网科技 丰台科技园 互联网 互联网科技上市公司 齐家互联网科技有限公司 开启互联网科技时代小说 青岛中康互联网医疗科技有限公司 银川新华互联网科技职业技术培训学校图片 青海科技产业互联网发展 国大互联网教育科技有限公司工作 内蒙古九一互联网科技 科技大学互联网 新氧科技和美国互联网有关系吗 互联网科技的前景 安徽九吞吴互联网科技有限公司 亿人帮互联网科技有限公司 科技与互联网发展 居家互联网科技有限公司 卓越科技互联网 招聘 海南购全球互联网科技 青岛中康互联网医疗科技有限公司 佛山市翊博互联网络科技有限公司 杭州科技互联网公司有哪些 平安好医生打造互联网科技医疗 每日互联网科技新闻
0