例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; //联想 ?>