首页 >后端开发 >php教程 >如何在 PHP 中创建对象的真实副本?

如何在 PHP 中创建对象的真实副本?

DDD
DDD原创
2024-11-28 09:40:11156浏览

How Can I Create True Copies of Objects in PHP?

在 PHP 中复制对象:了解按引用传递并使用“克隆”

尽管相信 PHP 中对象是按引用传递的,但赋值运算符不会创建副本。以下示例代码演示了此行为:

class A {
    public $b;
}

function set_b($obj) { $obj->b = "after"; }

$a = new A();
$a->b = "before";
$c = $a;

set_b($a);

print $a->b;
print $c->b;

在这种情况下,两个 print 语句都将输出“after”,表明该对象已被 set_b() 函数修改,尽管该对象作为

要在 PHP 中创建对象的副本,可以使用 PHP 5 中引入的克隆运算符:

$objectB = clone $objectA;

这个操作创建一个独立于原始对象的新对象。对一个对象所做的任何更改都不会影响另一个对象。

需要注意的是,在 PHP 中只有对象通过引用传递。其他类型的变量(例如数组、字符串和整数)是按值传递的。这意味着将这些变量分配给其他变量会创建该变量的新实例,而不是对原始变量的引用。

以上是如何在 PHP 中创建对象的真实副本?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn