PHP

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

Задача
Необходимо создать копию существующего объекта. Например, есть объект, содержащий сообщение для рассылки, и вы хотите скопировать его в качестве основы для ответного сообщения.

Решение
Для присваивания объекта новой переменной применяется оператор =:

$rabbit = new rabbit;
$rabbit->eat();
$rabbit->hop();
$baby = $rabbit;


Обсуждение
В PHP для создания копии объекта достаточно присвоить его новой переменной. Начиная с этого момента каждый экземпляр объекта живет независимой жизнью, и изменение одного из них не оказывает влияния на другой:

class person {
var $name;
function person ($name) {
$this->name = $name;
}
}
$adam = new person('adam');
print $adam->name; // adam
$dave = $adam;
$dave->name = 'dave';
print $dave->name; // dave
print $adam->name; // все еще adam


Zend Engine 2 допускает явное клонирование объекта с помощью метода __clone(), вызываемого при каждом копировании объекта. Это обеспечивает более тонкое управление набором копируемых свойств.
Теги:
классы, объекты, ооп
Добавлено: 21 Июля 2018 13:44:49 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...