Разработчику. Сборник рецептов 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(), вызываемого при каждом копировании объекта. Это обеспечивает более тонкое управление набором копируемых свойств.

Вернуться назад

Рейтинг@Mail.ru

Яндекс.Метрика

Индекс цитирования


Рейтинг Сайтов ДОСКИ.РУ