In PHP, deep copying an object means creating a new instance of an object and copying all properties over, ensuring that nested objects are also copied properly. This is especially useful when you want to modify a copy of an object without affecting the original object. Here's an example of how you can achieve this in a memory-efficient way using serialization and deserialization.
<?php
class Person {
public $name;
public $age;
public $address;
public function __construct($name, $age, $address) {
$this->name = $name;
$this->age = $age;
$this->address = $address;
}
}
function deepCopy($obj) {
return unserialize(serialize($obj));
}
$original = new Person("John Doe", 30, "123 Main St");
$copy = deepCopy($original);
// Modify the copy
$copy->name = "Jane Doe";
echo $original->name; // Outputs: John Doe
echo $copy->name; // Outputs: Jane Doe
?>
How do I avoid rehashing overhead with std::set in multithreaded code?
How do I find elements with custom comparators with std::set for embedded targets?
How do I erase elements while iterating with std::set for embedded targets?
How do I provide stable iteration order with std::unordered_map for large datasets?
How do I reserve capacity ahead of time with std::unordered_map for large datasets?
How do I erase elements while iterating with std::unordered_map in multithreaded code?
How do I provide stable iteration order with std::map for embedded targets?
How do I provide stable iteration order with std::map in multithreaded code?
How do I avoid rehashing overhead with std::map in performance-sensitive code?
How do I merge two containers efficiently with std::map for embedded targets?