Присваивание ссылок на объекты

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

Решение
Для присваивания одного объекта другому по ссылке применяется оператор =&:

$adam = new user;
$dave =& $adam;

Обсуждение
В результате присваивания объекта с помощью оператора = создается новая копия объекта. Поэтому изменение одного не влияет на другой.

Но в случае применения оператора =& два объекта указывают друг на друга, поэтому любые изменения одного объекта отражаются на втором:

$adam = new user;
$adam->load_info('adam');
$dave =& $adam;
$dave->load_info('dave');

Значения в объекте $adam равны значениям в объекте $dave.

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела PHP на эту тему:
Динамическая реализация объекта
Динамическое создание класса
Добавление свойств в базовый объект
Доступ к переопределенным методам
Клонирование объектов

Вернуться в раздел: PHP / 7. Классы и объекты