Есть объект 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-то? И как это исправить?