php实现对象克隆的方法

这篇文章主要介绍了php实现对象克隆的方法,实例分析了php对象实例化与克隆的使用技巧,需要的朋友可以参考下,本文实例讲述了php实现对象克隆的方法。分享给大家供大家参考,具体如下:

  1. <?php
  2. //定义类staff,其中包括属性id和name
  3. class staff
  4. {
  5. private $id;
  6. private $name;
  7. function setID($id)
  8. {
  9. $this->id = $id;
  10. }
  11. function getID()
  12. {
  13. return $this->id;
  14. }
  15. function setName($name)
  16. {
  17. $this->name = $name;
  18. }
  19. function getName()
  20. {
  21. return $this->name;
  22. }
  23. }
  24. //创建一个新的staff对象并初始化
  25. $ee1 = new staff();
  26. $ee1->setID("145");
  27. $ee1->setName("Simon");
  28. //克隆一个新的对象
  29. $ee2 = clone $ee1;
  30. //重新设置新对象的ID值
  31. $ee2->setID("146");
  32. //输出ee1和ee2
  33. echo "ee1 ID: ".$ee1->getID()."<br>";
  34. echo "ee1 Name: ".$ee1->getName()."<br>";
  35. echo "ee2 ID: ".$ee2->getID()."<br>";
  36. echo "ee2 Name: ".$ee2->getName()."<br>";
  37. ?>
  38. <?php
  39. //定义类staff,其中包括属性id和name
  40. class staff
  41. {
  42. private $id;
  43. private $name;
  44. function setID($id)
  45. {
  46. $this->id = $id;
  47. }
  48. function getID()
  49. {
  50. return $this->id;
  51. }
  52. function setName($name)
  53. {
  54. $this->name = $name;
  55. }
  56. function getName()
  57. {
  58. return $this->name;
  59. }
  60. //这里是__clone函数
  61. function __clone()
  62. {
  63. $this->id = $this->id + 1;
  64. }
  65. }
  66. //创建一个新的staff对象并初始化
  67. $ee1 = new staff();
  68. $ee1->setID("145");
  69. $ee1->setName("Simon");
  70. //克隆一个新的对象
  71. $ee2 = clone $ee1;
  72. //重新设置新对象的ID值
  73. //$ee2->setID("146");
  74. //输出ee1和ee2
  75. echo "ee1 ID: ".$ee1->getID()."<br>";
  76. echo "ee1 Name: ".$ee1->getName()."<br>";
  77. echo "ee2 ID: ".$ee2->getID()."<br>";
  78. echo "ee2 Name: ".$ee2->getName()."<br>";
  79. ?>