将心比心,方得人心~

OOP的魔术方法__clone()

周洲 2017-04-06 21:02:05

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


?>


打赏

『微信打赏』

Tag标签php 

我是有底线的