php克隆对象及,php 克隆

本文目录一览:

php问题 克隆对象和引用对象的区别是什么

复制文件、建立快捷方式的区别,克隆就是复制,引用就是快捷方式,引用的对象实际上同一个东西,修改任何一个变量,另外一个也会跟着变化。

PHP对象克隆clone用法示例

本文实例讲述了PHP对象克隆clone用法。分享给大家供大家参考,具体如下:

浅克隆:只是克隆对象中的非对象非资源数据,即对象中属性存储的是对象类型,则会出现克隆不完全

?php

class

B{

public

$val

=

10;

}

class

A{

public

$val

=

20;

public

$b;

public

function

__construct(){

$this-b

=

new

B();

}

}

$obj_a

=

new

A();

$obj_b

=

clone

$obj_a;

$obj_a-val

=

30;

$obj_a-b-val

=

40;

var_dump($obj_a);

echo

‘br’;

var_dump($obj_b);

运行结果如下:

object(A)[1]

public

‘val’

=

int

30

public

‘b’

=

object(B)[2]

public

‘val’

=

int

40

object(A)[3]

public

‘val’

=

int

20

public

‘b’

=

object(B)[2]

public

‘val’

=

int

40

深克隆:一个对象的所有属性数据都彻底的复制,需要使用魔术方法__clone(),并在里面实现深度克隆

?php

class

B{

public

$val

=

10;

}

class

A{

public

$val

=

20;

public

$b;

public

function

__construct(){

$this-b

=

new

B();

}

public

function

__clone(){

$this-b

=

clone

$this-b;

}

}

$obj_a

=

new

A();

$obj_b

=

clone

$obj_a;

$obj_a-val

=

30;

$obj_a-b-val

=

40;

var_dump($obj_a);

echo

‘br’;

var_dump($obj_b);

运行结果如下:

object(A)[1]

public

‘val’

=

int

30

public

‘b’

=

object(B)[2]

public

‘val’

=

int

40

object(A)[3]

public

‘val’

=

int

20

public

‘b’

=

object(B)[4]

public

‘val’

=

int

10

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

在php中 clone 对象的值可以改变吗?(对象1中$var=2, 对象2克隆对象1 ,对象2.$var=3,print 对象1.$var;)

对象克隆后,得到是一个对象的实例,并将数据复制一份,两者各自的数据都是独立的。请参看以下代码:

?php

class corporatedrone {

private $employeeid;

private $tiecolor;

function setEmployeeID($employeeid) {

$this-employeeid = $employeeid;

}

function getEmployeeID() {

return $this-employeeid;

}

function setTiecolor($tiecolor) {

$this-tiecolor = $tiecolor;

}

function getTiecolor() {

return $this-tiecolor;

}

}

// 建立对象1

$drone1 = new corporatedrone();

// 设置对象1属性

$drone1-setEmployeeID(“12345”);

$drone1-setTiecolor(“red”);

// 克隆对象1

$drone2 = clone $drone1;

// 设置对象2属性

$drone2-setEmployeeID(“67890”);

// 输出两个对象的成员属性

echo “对象1 employeeID: “.$drone1-getEmployeeID().”br /”;

echo “对象1 tie color: “.$drone1-getTiecolor().”br /”;

echo “对象2 employeeID: “.$drone2-getEmployeeID().”br /”;

echo “对象2 tie color: “.$drone2-getTiecolor().”br /”;

?

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/246472.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-12 13:15
下一篇 2024-12-12 13:15

相关推荐

  • PHP和Python哪个好找工作?

    PHP和Python都是非常流行的编程语言,它们被广泛应用于不同领域的开发中。但是,在考虑择业方向的时候,很多人都会有一个问题:PHP和Python哪个好找工作?这篇文章将从多个方…

    编程 2025-04-29
  • PHP怎么接币

    想要在自己的网站或应用中接受比特币等加密货币的支付,就需要对该加密货币拥有一定的了解,并使用对应的API进行开发。本文将从多个方面详细阐述如何使用PHP接受加密货币的支付。 一、环…

    编程 2025-04-29
  • 面向对象编程、类和对象

    面向对象编程(Object-Oriented Programming, OOP)是一种编程方法,它将现实世界中的事物抽象为对象(Object),对象的属性和方法被封装成类(Clas…

    编程 2025-04-29
  • 使用PHP foreach遍历有相同属性的值

    本篇文章将介绍如何使用PHP foreach遍历具有相同属性的值,并给出相应的代码示例。 一、基础概念 在讲解如何使用PHP foreach遍历有相同属性的值之前,我们需要先了解几…

    编程 2025-04-28
  • Mapster:一个高性能的对象映射库

    本文将深入介绍furion.extras.objectmapper.mapster,一个高性能的对象映射库,解释它是如何工作的以及如何在你的项目中使用它。 一、轻松地实现对象之间的…

    编程 2025-04-28
  • Python返回对象类型

    Python是一种动态、解释型、高级编程语言。Python是一种面向对象的语言,即所有的一切都是一个对象。 一、基本类型 Python中的基本类型有整数int、浮点数float、布…

    编程 2025-04-28
  • PHP获取301跳转后的地址

    本文将为大家介绍如何使用PHP获取301跳转后的地址。301重定向是什么呢?当我们访问一个网页A,但是它已经被迁移到了另一个地址B,此时若服务器端做了301重定向,那么你的浏览器在…

    编程 2025-04-27
  • Python中通过对象不能调用类方法和静态方法的解析

    当我们在使用Python编写程序时,可能会遇到通过对象调用类方法和静态方法失败的问题,那么这是为什么呢?接下来,我们将从多个方面对这个问题进行详细解析。 一、类方法和静态方法的定义…

    编程 2025-04-27
  • PHP登录页面代码实现

    本文将从多个方面详细阐述如何使用PHP编写一个简单的登录页面。 1. PHP登录页面基本架构 在PHP登录页面中,需要包含HTML表单,用户在表单中输入账号密码等信息,提交表单后服…

    编程 2025-04-27
  • Python内置函数——查看对象内存

    本文将介绍Python内置函数中,在开发中查看对象内存的相关函数。 一、id()函数 id()函数是Python内置函数,用于返回对象的唯一标识符,也就是对象在内存中的地址。 nu…

    编程 2025-04-27

发表回复

登录后才能评论