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

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

DDD
发布: 2024-12-03 08:28:10
原创
671 人浏览过

How Do I Create True Copies of Objects in PHP?

在 PHP 中创建对象副本

PHP 以独特的方式处理对象引用。与流行的看法相反,对象是通过引用传递的,这意味着将对象分配给另一个变量不会创建副本。在赋值后修改原始对象时,这种行为变得很明显。

示例:

考虑以下 PHP 代码片段:

class A {
    public $b;
}

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

$a = new A();
$a->b = "before";
$c = $a;  // This line creates a reference to $a, not a copy

set_b($a);

print $a->b;  // Output: 'after'
print $c->b;  // Output: 'after'
登录后复制

在此例如,将 $a 分配给 $c 创建对 $a 的引用而不是副本。当 set_b() 函数修改 $a 对象时,更改会反映在 $a 和 $c 中。

解决方案:使用克隆

PHP 5 及更高版本提供克隆运算符来创建对象的真实副本。通过使用克隆,您可以按值传递对象,并确保对原始对象的修改不会影响副本。

$objectB = clone $objectA;  // Creates a copy of $objectA
登录后复制

重要提示:

它值得一提的是,在 PHP 中只有对象是通过引用传递的。原始数据类型(例如整数、字符串和布尔值)始终按值传递。

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板