Sometimes we need to use two or more identical objects in a project. If you use the "new" keyword to recreate the object and then assign the same attributes, it is more cumbersome and easier to do so. An error occurred, so it is very necessary to completely clone an identical object based on an object, and after cloning, the two objects will not interfere with each other. This article mainly shares with you the implementation method of PHP object cloning, hoping to help everyone.
## <?php //定义类staff,其中包括属性id和name class staff { private $id; private $name; function setID($id) { $this->id = $id; } function getID() { return $this->id; } function setName($name) { $this->name = $name; } function getName() { return $this->name; } } //创建一个新的staff对象并初始化 $ee1 = new staff(); $ee1->setID("145"); $ee1->setName("Simon"); //克隆一个新的对象 $ee2 = clone $ee1; //重新设置新对象的ID值 $ee2->setID("146"); //输出ee1和ee2 echo "ee1 ID: ".$ee1->getID()."<br data-filtered="filtered">"; echo "ee1 Name: ".$ee1->getName()."<br data-filtered="filtered">"; echo "ee2 ID: ".$ee2->getID()."<br data-filtered="filtered">"; echo "ee2 Name: ".$ee2->getName()."<br data-filtered="filtered">"; ?> Copy after login |
#<?php //定义类staff,其中包括属性id和name class staff { private $id; private $name; function setID($id) { $this->id = $id; } function getID() { return $this->id; } function setName($name) { $this->name = $name; } function getName() { return $this->name; } //这里是__clone函数 function __clone() { $this->id = $this->id + 1; } } //创建一个新的staff对象并初始化 $ee1 = new staff(); $ee1->setID("145"); $ee1->setName("Simon"); //克隆一个新的对象 $ee2 = clone $ee1; //重新设置新对象的ID值 //$ee2->setID("146"); //输出ee1和ee2 echo "ee1 ID: ".$ee1->getID()."<br>"; echo "ee1 Name: ".$ee1->getName()."<br>"; echo "ee2 ID: ".$ee2->getID()."<br>"; echo "ee2 Name: ".$ee2->getName()."<br>"; ?> Copy after login
|
The above is the detailed content of How to implement php object cloning. For more information, please follow other related articles on the PHP Chinese website!