在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
请注意,如果原始对象包含引用类型的属性(如数组或另一个对象),则复制后的对象将共享这些引用。这意味着修改复制后的对象中的引用类型属性将影响原始对象。要避免这种情况,可以在复制对象之前手动遍历对象并深拷贝引用类型的属性。