在PHP中,要復制一個stdClass對象,可以使用clone
關鍵字。這將創建一個新的stdClass對象,并將原始對象的所有屬性值復制到新對象中。以下是一個示例:
<?php
// 創建一個stdClass對象
$obj1 = new stdClass();
$obj1->name = "John";
$obj1->age = 30;
$obj1->city = "New York";
// 使用clone關鍵字復制stdClass對象
$obj2 = clone $obj1;
// 修改復制后的對象的屬性值
$obj2->name = "Jane";
$obj2->age = 28;
$obj2->city = "Los Angeles";
// 輸出兩個對象的屬性值
echo "Original object - Name: " . $obj1->name . ", Age: " . $obj1->age . ", City: " . $obj1->city . "\n";
echo "Copied object - Name: " . $obj2->name . ", Age: " . $obj2->age . ", City: " . $obj2->city . "\n";
?>
輸出結果:
Original object - Name: John, Age: 30, City: New York
Copied object - Name: Jane, Age: 28, City: Los Angeles
請注意,如果原始對象包含引用類型的屬性(如數組或另一個對象),則復制后的對象將共享這些引用。這意味著修改復制后的對象中的引用類型屬性將影響原始對象。要避免這種情況,可以在復制對象之前手動遍歷對象并深拷貝引用類型的屬性。