千家信息网

克隆对象clone

发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,在PHP中可以根据现有的对象克隆初一个完全一样的对象,克隆以后,原本和副本两个对象完全独立,互不干扰。
千家信息网最后更新 2025年02月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安全错误 数据库的锁怎样保障安全 软件开发中的快速模型 嵌入式产品软件开发文档 软件开发在郑卅能拿多少工资 在局域网中建立网络服务器 sci 东北大学 数据库 火电厂网络安全事件 山西精英网络技术开发联系人 自动化网络技术厂家价格 海南高宇网络技术有限公司游戏是虚假宣传吗 有关网络安全题目 系统备份后还用备份数据库吗 服务器环境测试 厦门智能设备软件开发 oracle数据库字符集有哪些 新兴的数据库应用技术 基础数据库操作指令 架设服务器备案 自行软件开发会计科目 普陀区方便软件开发服务保障 数据库数据定义语言 跨年数据库连接失败的原因 网络技术的诈骗共犯 上海管理网络技术口碑推荐 网络安全科技馆实拍 幻塔怎么显示无法连接服务器 数据库如何存储和管理系统 服务器连接后无法开机 芝罘区直播软件开发公司有哪些 边豪网络技术有限公司 学完hcie能网络安全吗
0