Что такое клонирование объектов?

Ответ
class Order {
    public array $items = [];
    public Address $address;

    public function __clone() {
        // Без __clone: $address будет общим (shallow copy)
        $this->address = clone $this->address; // deep copy
        // Массив скаляров копируется автоматически
    }
}

$order1 = new Order();
$order2 = clone $order1; // вызывает __clone()

Shallow copy (по умолчанию) - копирует примитивы, но объекты и ресурсы остаются общими. Deep copy - нужно реализовать через __clone(), клонируя вложенные объекты.

🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.