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

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

DDD
DDD原創
2024-11-28 09:40:11206瀏覽

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