在PHP中,要复制一个stdClass对象,可以使用clone
关键字。这将创建一个新的stdClass对象,并将原始对象的所有属性值复制到新对象中。以下是一个示例:
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
请注意,如果原始对象包含引用类型的属性(如数组或另一个对象),则复制后的对象将共享这些引用。这意味着修改复制后的对象中的引用类型属性将影响原始对象。要避免这种情况,可以在复制对象之前手动遍历对象并深拷贝引用类型的属性。