广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >php clone关键字的使用方法
  • 573
分享到

php clone关键字的使用方法

2023-06-20 17:06:32 573人浏览 八月长安
摘要

这篇文章主要介绍“PHP clone关键字的使用方法”,在日常操作中,相信很多人在php clone关键字的使用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php clone关键字的使用方法”的疑惑有所

这篇文章主要介绍“PHP clone关键字的使用方法”,在日常操作中,相信很多人在php clone关键字的使用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php clone关键字的使用方法”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

在php中,clone关键字可以用于克隆对象,语法格式“克隆对象名称 = clone 原对象名称;”;对象克隆成功后,它们中的成员方法、属性以及值是完全相同的。如果要对克隆后副本的成员属性重新赋值,可以使用“__clone()”方法。

教程操作环境:windows7系统、PHP7.1版,DELL G3电脑

PHP clone关键字(克隆对象)

PHP 中的对象模型是通过引用来调用对象的,但有时需要建立一个对象的副本,在改变原有对象时不希望影响到对象副本。如果使用new关键字重新创建对象,再为属性赋上相同的值,这样做会比较烦琐而且也容易出错。在 PHP 中可以根据现有的对象克隆出一个完全一样的对象,克隆以后,原本对象和副本对象是完全独立互不干扰的。

在 PHP 中可以使用 clone 关键字克隆对象,语法格式如下:

克隆对象名称 = clone 原对象名称;

因为 clone 的方式实际上是对整个对象的内存区域进行了一次复制并用新的对象变量指向新的内存,因此赋值后的对象和原对象之间是相互独立的。

对象克隆成功后,它们中的成员方法、属性以及值是完全相同的。如果要对克隆后副本的成员属性重新赋值,可以使用 __clone() 方法。

【示例】下面通过一个简单的示例来演示一下 clone 关键字的使用。

<?php    class WEBsite{        public $name, $url;        public function __construct($name, $url){            $this -> name = $name;            $this -> url  = $url;        }        public function output(){            echo $this -> name.','.$this -> url.'<br>';        }    }    $obj  = new Website('编程网', 'https://www.php.cn/');    $obj2 = clone $obj;    $obj  -> output();    $obj2 -> output();    echo '<pre>';    var_dump($obj);    var_dump($obj2);?>

运行结果如下:

编程网,Https://www.php.cn/编程网,https://www.php.cn/object(Website)#1 (2) {  ["name"]=>  string(16) "编程网"  ["url"]=>  string(27) "https://www.php.cn/"}object(Website)#2 (2) {  ["name"]=>  string(16) "编程网"  ["url"]=>  string(27) "https://www.php.cn/"}

注意:如果使用=将一个对象赋值给一个变量,那么这时得到的将是一个对象的引用,通过这个变量更改属性的值将会影响原来的对象。

__clone() 魔术方法

__clone() 方法不能够直接被调用,只有当通过 clone 关键字克隆一个对象时才可以使用该对象调用 __clone() 方法。当创建对象的副本时,PHP 会检查 __clone() 方法是否存在。如果不存在,那么它就会调用默认的 __clone() 方法,复制对象的所有属性。如果 __clone() 方法已经定义过,那么 __clone() 方法就会负责设置新对象的属性。所以在 __clone() 方法中,只需要覆盖那些需要更改的属性就可以了。

__clone() 方法不需要任何参数,下面通过一个示例来演示一下:

<?php    class Website{        public $name, $url;        public function __construct($name, $url){            $this -> name = $name;            $this -> url  = $url;        }        public function output(){            echo $this -> name.','.$this -> url.'<br>';        }        public function __clone(){            $this -> name = 'PHP教程';            $this -> url  = 'https://www.php.cn/';        }    }    $obj  = new Website('编程网', 'https://www.php.cn/');    $obj2 = clone $obj;    $obj  -> output();    $obj2 -> output();?>

运行结果如下:

编程网,https://www.php.cn/PHP教程,https://www.php.cn/

提示:如果在类中设置一个空的,访问权限为 private(私有的)的 __clone() 方法的话,可以起到禁止克隆的作用。

到此,关于“php clone关键字的使用方法”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: php clone关键字的使用方法

本文链接: https://www.lsjlt.com/news/298714.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • php clone关键字的使用方法
    这篇文章主要介绍“php clone关键字的使用方法”,在日常操作中,相信很多人在php clone关键字的使用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php clone关键字的使用方法”的疑惑有所...
    99+
    2023-06-20
  • java关键字的使用方法
    本篇内容介绍了“java关键字的使用方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在平时写代码的时候我们会经常用到void,我们都知道他...
    99+
    2023-06-19
  • Golang的关键字defer的使用方法
    目录核心思想defer链源码分析优化核心思想 在defer出现的地方插入了指令CALL runtime.deferproc,在函数返回的地方插入了CALL runtime.defer...
    99+
    2022-11-13
  • SQL中关于distinct关键字的使用方法
    这篇文章主要介绍SQL中关于distinct关键字的使用方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供有...
    99+
    2022-10-18
  • Java super关键字的使用方法详解
    构造方法中的super关键字在Java子类的构造方法中可以通过super关键字来调用父类的构造方法。其用法为: 1) super(); 访问父类中的无参构造函数 2) super (paras…); 访问父类中的成员函数yyy super(...
    99+
    2023-05-31
    java super ava
  • PHP中的HTTP重定向:关键字的作用及使用方法
    HTTP重定向是指当客户端访问一个URL时,服务器将客户端重定向到另一个URL的过程。在Web开发中,HTTP重定向是一种重要的技术,它允许我们将用户定向到正确的URL或页面,以提高用户体验和SEO效果。在PHP中,我们可以使用heade...
    99+
    2023-11-03
    http 重定向 关键字
  • 关于java中final关键字的使用方法详解
    一、修饰类被final修饰的类不能被子类继承。//父类Animal public final class Animal{ private int age; //年龄 private String var; //品种 public...
    99+
    2015-04-20
    java final 关键字 使用方法 详解
  • C#中using关键字的使用方法示例
    目录1 :using 指令(命名空间)2 :using 语句(1 ):using (ResourceType Identifier = Expression ) State...
    99+
    2022-11-13
  • Java this关键字的使用方法有哪些
    这篇文章主要介绍“Java this关键字的使用方法有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java this关键字的使用方法有哪些”文章能帮助大家解决问题。Boy类...
    99+
    2023-06-26
  • 详解java中private关键字的使用方法
    private 关键字中文就是私有关键字,那么到底要怎么使用呢?1、只能在同一类中访问class A { private String msg="Try to access the private variable outside ...
    99+
    2016-08-22
    java入门 java private
  • Java中关键字synchronized的使用方法详解
    synchronized是Java里的一个关键字,起到的一个效果是“监视器锁”~~,它的功能就是保证操作的原子性,同时禁止指令重排序和保证内存的可见性! public clas...
    99+
    2022-11-12
  • java中this与super关键字的使用方法
    java中this与super关键字的使用方法这几天看到类在继承时会用到this和super,这里就做了一点总结,与各位共同交流,有错误请各位指正~thisthis是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针。this...
    99+
    2023-05-31
    java this super
  • Python中有哪些关键字及关键字的用法
    目录Python有哪些关键字1.and , or2.del3.from4.golbal5.with6.while, for…in…7.assert8.pa...
    99+
    2023-02-04
    python关键字用法 python关键字
  • Java中Static关键字使用的方法有哪些
    本文小编为大家详细介绍“Java中Static关键字使用的方法有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java中Static关键字使用的方法有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。&nb...
    99+
    2023-07-05
  • python关键字参数的使用方法有哪些
    这篇“python关键字参数的使用方法有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“python关键字参数的使用方法有...
    99+
    2023-06-30
  • java的clone方法怎么使用
    在Java中,clone方法是Object类的一个方法,用于创建并返回一个对象的副本。要使用clone方法,必须实现Cloneabl...
    99+
    2023-08-24
    java clone
  • php中function关键字的用法是什么
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑PHP 的函数可以分为两种,即 PHP 的预定义函数和用户自定义的函数。用户可以在自己的程序或 PHP 文件中直接使用预定义函数,PHP 提供了大量功能丰富的预定义函数...
    99+
    2018-01-13
    php function 关键字
  • PHP中的关键字:HTTP重定向的实现方法
    在Web开发中,HTTP重定向是一种常见的技术,它可以将用户的请求重定向到另一个URL,以实现页面跳转等功能。在PHP中,我们可以使用header函数来实现HTTP重定向,本文将详细介绍PHP中HTTP重定向的实现方法。 一、HTTP重定...
    99+
    2023-11-03
    http 重定向 关键字
  • Java的this关键字用法
    本篇内容主要讲解“Java的this关键字用法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java的this关键字用法”吧!一、this关键字的作用this关键字除了可以强调本类中的方法还具有...
    99+
    2023-06-20
  • Java中的final关键字使用方式
    目录一、final概述二、使用方式修饰类修饰方法修饰变量局部变量—引用类型成员变量一、final概述 子类可以在父类的基础上改写父类内容,比如,方法重写。那么我们能不能随...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作