Проведя небольшое исследование, я, в конце концов, наткнулся на ответ на вопрос, который мне скоро придется здесь задать; Как вы работаете с массивами с помощью магических методов __get
и __set
в PHP? Всякий раз, когда я пытался установить значение, используя что-то вроде $object->foo['bar'] = 42;
, казалось, что оно молча сбрасывает его.
В любом случае, ответ прост; Метод __get
просто необходимо вернуть по ссылке. И после того, как он бросил перед ним амперсанд, он наверняка сработает.
Мой вопрос на самом деле, почему? Я не могу понять, почему это работает. Как __get
возврат по ссылке влияет на __set
работу с многомерными массивами?
Редактировать: Кстати, работает PHP 5.3.1