Нужно изменить значение вложенного массива в классе

Shinbolat

Новичок
Всем привет! Сколько день уже пытаюсь решит эту проблему. Нашел решение на хабре. Но так не вызывается __set(). Дело в том что мне нужно записывать данные базы данных при изменений.

Например:
PHP:
$foo = new Foo();

$foo->people['girl'] = 'love';
То есть он сначала должен взять данные в базе данных people. И при изменений значений массива сохранить его. Как сохранить в базе данных или файле знаю. Проблема в том что не могу перехватить это событие. То есть реагировать на событие "="
 

scorpion-ds

Новичок
По всей видимости у тебя в классе "Foo", есть параметр "$people", потому "_set" отрабатывать не будет, но даже, если его нет, то "_set" сработает именно для "people" + значение которое будет передано, в данном случае по идеи значением будет "array('girl' => 'love')".
 

antson

Новичок
Партнер клуба
Shinbolat, боюсь , что в результате у тебя получится ситуация.
сколько полей изменили, столько запросов на обновление к базе и выполнилось , вместо одного апдейта.
Что будет творится при работе сразу с несколькими записями страшно даже представить.

а в исходном примере на хабре ты не разобрался.
people[] получается аналог _data[] из примера.
$foo->girl='love' ;
А вот уже сет и гет его отображают на people .
На прямую лезть нельзя
 
Сверху