例1:
<?php
class Computer {
public $_name = 'dell';
public function _run() {
echo '运行';
}
}
//对象克隆
$computer1 = new Computer();
$computer1->_name='联想';
$computer2 = clone $computer1;
echo $computer2->_name; //联想
$computer2->_name = 'ibm';
echo $computer2->_name; //ibm
echo $computer1->_name; //联想
?>
PHP可以在类中定义一个__clone()内置方法来调整对象的克隆行为。当一个对象被克 隆的时候自动执行__clone()方法,而复制的对象可以在其方法体内进行调整。
例2:
<?php
class Computer {
public $_name = 'dell';
public function _run() {
echo '运行';
}
public function __clone() {
echo '克隆了';
$this->_name = '联想'; //$this 代表$computer2
}
}
$computer1 = new Computer();
$computer2 = clone $computer1;
echo $computer1->_name; //克隆了dell
echo $computer2->_name; //联想
?>