Object Clone Administration for PHP

Source: Internet
Author: User
PHP Object clone is used


? ? A __clone() is defined in PHP5 to create an object that has the same properties and methods as the original object. If you want to change the contents of the original object after cloning, you need to override the original properties and methods in __clone().


????? __Clone() can have no parameters, it automatically contains $this and $that two pointers.

$this pointing to the replica

$that point to the original



If a new class is declared in the class

class concreteprototype{
?? Public Function __construct () {
?????? $this->id = 1;
?? ??? ? $this->obj = new StdClass ();
?????? $this->obj->name = ' Dashu ';
??? Public function Myclone () {
?????? Return clone $this;

???? //without this, $obj is a reference, with the two independent of each other, personally try to see
??? ?private function __clone () {
?????? $this->obj = Clone $ This->obj;

$p = new Concreteprototype ();
$q = $p->myclone ();
var_dump ($p, $q);
$q->id = 2;
//change $q properties of obj, $p corresponding property does not change
$q->obj->name = ' xiayi ';


  • Related Article

    Beyond APAC's No.1 Cloud

    19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

    Learn more >

    Apsara Conference 2019

    The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

    Learn more >

    Alibaba Cloud Free Trial

    Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

    Learn more >

    Contact Us

    The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

    If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.