对象复制的2种形式区别

对象复制的2种方式区别

class one{

        public $name;

 

        function __construct($name){

            $this->name = $name;

        }

 

        public function demo(){

            echo $this->name;

        }

 

        public function setName($newName){

            $this->name = $newName;

        }

 

        function __clone(){

            $this->name = "HAHA";

        }

 

    }

 

    $a = new one('ajia');

    //$b = $a;         //对象复制是引用复制,会互相影响

    $b = clone $a; //__clone方式的对象复制就不会互相影响

    $a->setName('youxi');

    //$b->setName('123');

    $b->demo();