Home  >  Article  >  Backend Development  >  How to implement object cloning in php

How to implement object cloning in php

高洛峰
高洛峰Original
2016-12-21 14:08:35944browse

The example in this article describes how to implement object cloning in PHP. Share it with everyone for your reference. The details are as follows:

<?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>";
  echo "ee1 Name: ".$ee1->getName()."<br>";
  echo "ee2 ID: ".$ee2->getID()."<br>";
  echo "ee2 Name: ".$ee2->getName()."<br>";
?>

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

I hope this article will be helpful to everyone’s PHP programming design.

For more articles related to methods of object cloning in PHP, please pay attention to the PHP Chinese website!


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn