• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php克隆对象是什么?它是如何实现的?

php 搞代码 3年前 (2022-01-22) 30次浏览 已收录 0个评论

有的时候我们需要在一个项目里面,使用两个或多个一样的对象,如果你使用“new” 关键字重新创建对象的话,再赋值上相同的属性,这样做比较烦琐而且也容易出错,所以要 根据一个对象完全克隆出一个一模一样的对象,是非常有必要的,而且克隆以后,两个对象 互不干扰。
在PHP5 中我们使用“clone”这个关键字克隆对象;

<?php class Person{ //下面是人的成员属性 var $name; //人的名子 var $sex; //人的性别 var $age; //人的年龄 //定义一个构造方法参数为属性姓名$name、性别$sex和年龄$age进行赋值 func<div>)本文来源gaodai.ma#com搞#代!码网_</div><strong>搞代gaodaima码</strong>tion construct($name="", $sex="", $age=""){ $this->name=$name; $this->sex=$sex; $this->age=$age; } //这个人可以说话的方法, 说出自己的属性 function say() { echo "我的名子叫:".$this->name." 性别:".$this->sex." 我的年龄是:".$this->age."<br>"; } } $p1=new Person("张三", "男", 20); //使用“clone”克隆新对象p2,和p1对象具有相同的属性和方法。 $p2=clone $p1; $p2->say(); ?>

PHP5 定义了一个特殊的方法名“clone()”方法,是在对象克隆时自动调用的方法, 用“clone()”方法将建立一个与原对象拥有相同属性和方法的对象,如果想在克隆后改变
原对象的内容,需要在clone()中重写原本的属性和方法,“clone()”方法可以没有参数, 它自动包含$this 和$that 两个指针,$this 指向复本,而$that 指向原本;

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

以上就是php克隆对象是什么?它是如何实现的?的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php克隆对象是什么?它是如何实现的?
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址