Indirect modification of overloaded property для объектов?

Есть объект Entry, у него есть свойство $files - массив в котором лежат объекты Files. И у Entry, и у Files доступ к свойствам идёт через магические __get/__set. Пытаюсь модифицировать свойство одного из объектов Files:

$entry->files[$n]->description =  $new_description;


Мне пишет:
Indirect modification of overloaded property Entry::$files has no effect


Что за дела? Ведь всё должно быть так:

1. __get Entry возвращает копию свойства-массива files, в котором содержатся указатели на объекты Files.

2. По следующей стрелке уже вызывается __set нужного объекта Files, который устанавливает для новое значение его свойства description.

Ведь тут должно быть пофиг, что даётся не исходная ссылка на объект, а её копия - объект-то всё равно один. Почему Notice-то? И как это исправить?
  • Вопрос задан
  • 8782 просмотра
Решения вопроса 1
petermzg
@petermzg
Самый лучший программист
Тут есть и суть проблемы и ее решение
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы