PHP面向对象——clone关键字

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

你可能感兴趣的:(PHP,面向对象)