Object Clone Administration for PHP

Source: Internet
Author: User

PHP Object clone is used

1.?

? ? 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

?

2.

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

    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.

    Tags Index: