首頁 >後端開發 >php教程 >如何在 PHP 中建立物件的真實副本?

如何在 PHP 中建立物件的真實副本?

DDD
DDD原創
2024-12-03 08:28:10623瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn