PHP面向对象——clone关键字

本文通过PHP实例展示了对象克隆与赋值的区别,克隆对象与原始对象独立,修改克隆对象不影响原始对象;而赋值共享同一内存地址,修改新对象会改变原始对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

clone关键字用于克隆对象,克隆完的对象和源对象保持独立,对该对象的所做的修改不会影响源对象。赋值引用的方式产生的对象和源对象指向的同一个内存地址,所以对新对象所做的修改会影响到源对象,举例:

<?php
class NbaPlayer{
	public $name = '';
}

$james = new NbaPlayer();

$james->name = 'james';
echo 'james`s name is '.$james->name.'<br>';
$james2 = clone $james;//克隆
$james2->name = 'james2';
echo 'after clone :<br>';
echo 'james`s name is '.$james->name.'<br>';
echo 'james2`s name is '.$james2->name.'<br>';
$james3 = $james;	   //赋值
$james3->name = 'james3';
echo 'after assign:<br>';
echo 'james`s name is '.$james->name.'<br>';
echo 'james3`s name is '.$james3->name.'<br>';

运行后结果:

james`s name is james
after clone :
james`s name is james
james2`s name is james2
after assign:
james`s name is james3
james3`s name is james3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值