搜索
首页后端开发php教程第五节--克隆 -- Classes and Objects in PHP5 [5]_PHP

第五节--克隆

PHP5中的对象模型通过引用来调用对象, 但有时你可能想建立一个对象的副本,并希望原来的对象的改变不影响到副本 . 为了这样的目的,PHP定义了一个特殊的方法,称为__clone. 像__construct和__destruct一样,前面有两个下划线.

默认地,用__clone方法将建立一个与原对象拥有相同属性和方法的对象. 如果你想在克隆时改变默认的内容,你要在__clone中覆写(属性或方法).

克隆的方法可以没有参数,但它同时包含this和that指针(that指向被复制的对象). 如果你选择克隆自己,你要小心复制任何你要你的对象包含的信息,从that到this. 如果你用__clone来复制. PHP不会执行任何隐性的复制,

下面显示了一个用系列序数来自动化对象的例子:
绿色c hinaip ower. com7AT0x

   class ObjectTracker //对象跟踪器
   {
       private static $nextSerial = 0;
       private $id;
       private $name;

       function __construct($name) //构造函数
       {
           $this->name = $name;
           $this->id = ++self::$nextSerial;
       }

       function __clone()  //克隆
       {
           $this->name = "Clone of $that->name";
           $this->id = ++self::$nextSerial;
       }

       function getId() //获取id属性的值
       {
           return($this->id);
       }

       function getName() //获取name属性的值
       {
           return($this->name);
       }
   }

   $ot = new ObjectTracker("Zeev's Object");
   $ot2 = $ot->__clone();

   //输出: 1 Zeev's Object
   print($ot->getId() . " " . $ot->getName() . "
");

   //输出: 2 Clone of Zeev's Object
   print($ot2->getId() . " " . $ot2->getName() . "
");
?>

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
源码探秘:Python 中对象是如何被调用的?源码探秘:Python 中对象是如何被调用的?May 11, 2023 am 11:46 AM

楔子我们知道对象被创建,主要有两种方式,一种是通过Python/CAPI,另一种是通过调用类型对象。对于内置类型的实例对象而言,这两种方式都是支持的,比如列表,我们即可以通过[]创建,也可以通过list(),前者是Python/CAPI,后者是调用类型对象。但对于自定义类的实例对象而言,我们只能通过调用类型对象的方式来创建。而一个对象如果可以被调用,那么这个对象就是callable,否则就不是callable。而决定一个对象是不是callable,就取决于其对应的类型对象中是否定义了某个方法。如

使用Python的__contains__()函数定义对象的包含操作使用Python的__contains__()函数定义对象的包含操作Aug 22, 2023 pm 04:23 PM

使用Python的__contains__()函数定义对象的包含操作Python是一种简洁而强大的编程语言,提供了许多强大的功能来处理各种类型的数据。其中之一是通过定义__contains__()函数来实现对象的包含操作。本文将介绍如何使用__contains__()函数来定义对象的包含操作,并且给出一些示例代码。__contains__()函数是Pytho

详解虚拟机中CentOS的克隆与快照功能详解虚拟机中CentOS的克隆与快照功能Jan 15, 2024 pm 04:09 PM

对于初学者来说,最好在安装完系统之后,就做一次快照或者克隆!一、快照的使用1、打开快照管理器,2、开始:拍摄快照,3、快照拍摄完成。4、快照的恢复:选择转到某个快照即可,快照的功能使用很简单,适合初学者!二、克隆的使用1、克隆功能:对于测试的用户来说,省去了大量安装新的虚拟机的步骤;不需要占用大量的硬盘空间,不是一个完整的虚拟机,可能只有几十兆;克隆机依赖原始的虚拟机;2、开始克隆,注意:克隆虚拟机,需要将宿主机关机!3、选择克隆源,4、选择链接克隆,5、选择被克隆的虚拟机存放位置,6、克隆完成

使用Python的__le__()函数定义两个对象的小于等于比较使用Python的__le__()函数定义两个对象的小于等于比较Aug 21, 2023 pm 09:29 PM

标题:使用Python的__le__()函数定义两个对象的小于等于比较在Python中,我们可以通过使用特殊方法来定义对象之间的比较操作。其中之一就是__le__()函数,它用于定义小于等于比较。__le__()函数是Python中的一个魔法方法,并且是一种用于实现“小于等于”操作的特殊函数。当我们使用小于等于运算符(<=)比较两个对象时,Python

详解Javascript对象的5种循环遍历方法详解Javascript对象的5种循环遍历方法Aug 04, 2022 pm 05:28 PM

Javascript对象如何循环遍历?下面本篇文章给大家详细介绍5种JS对象遍历方法,并浅显对比一下这5种方法,希望对大家有所帮助!

Python中如何使用getattr()函数获取对象的属性值Python中如何使用getattr()函数获取对象的属性值Aug 22, 2023 pm 03:00 PM

Python中如何使用getattr()函数获取对象的属性值在Python编程中,我们经常会遇到需要获取对象属性值的情况。Python提供了一个内置函数getattr()来帮助我们实现这个目标。getattr()函数允许我们通过传递对象和属性名称作为参数来获取该对象的属性值。本文将详细介绍getattr()函数的用法,并提供实际的代码示例,以便更好地理解。g

使用Python的isinstance()函数判断对象是否属于某个类使用Python的isinstance()函数判断对象是否属于某个类Aug 22, 2023 am 11:52 AM

使用Python的isinstance()函数判断对象是否属于某个类在Python中,我们经常需要判断一个对象是否属于某个特定的类。为了方便地进行类别判断,Python提供了一个内置函数isinstance()。本文将介绍isinstance()函数的用法,并提供代码示例。isinstance()函数可以判断一个对象是否属于指定的类或类的派生类。它的语法如下

qq怎么克隆好友qq怎么克隆好友Feb 24, 2024 pm 05:37 PM

qq怎么克隆好友?在软件qq中是能够克隆好友到另一个账号中的,有些用户想要知道该怎么克隆好友。需要使用超级会员进行克隆。这篇克隆好友方式的介绍就能够告诉大家具体的操作方法,下面就是详细的介绍,赶紧看看吧。QQ使用教程qq怎么克隆好友答:在会员特权中克隆具体方法:手机端1、点击QQ左上角的头像。2、选择下方的【点我6折开SVIP】。3、点击其中的【功能特权】。4、往下拉,即可找到【好友克隆】功能。5、需要SVIP会员,才能进行克隆。电脑端1、点击左下方【三】菜单。2、选择弹窗中的【超级会员】。3、

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具