Я разрабатываю интерфейсный код для веб-приложения и столкнулся со странной проблемой с пользовательским объектом. Когда я запрашиваю объект и использую print_r()
, я получаю это (объект намного больше; просто обрежьте его до соответствующего кода):
MemberInfo Object
(
[meta_data] => Array
(
[email_recommendations] => true
[email_updates] => false
)
)
Чтобы что-то изменить в объекте MemberInfo, я просто обновляю его свойства и отправляю его обратно на сервер с помощью второй функции. Так, например, страница загружается один раз (что дает нам объект, показанный выше), затем я отправляю запрос POST с изменениями при второй загрузке страницы. Во время второй загрузки я извлекаю объект выше, по-разному устанавливаю одно поле на основе POST с чем-то вроде $memberInfo->meta_data['email_recommendations'] = 'false';
, а затем использую эту версию объекта для заполнения страницы после запуска функции обновления (что-то вроде updateMember($memberInfo);
). Однако, как только я изменил значение свойства объекта, print_r()
показывает мне что-то другое:
MemberInfo Object
(
[meta_data] => {\"email_recommendations\":\"false\",\"email_updates\":\"false\"}
)
Я уверен, что пропускаю что-то очень глупое; кто-нибудь имеет хорошее представление о том, что я должен искать? Я проверил, и код бэкэнда не передается по ссылке (вызов функции updateMember(MemberInfo $memberInfo);
), но я немного шаткую при обработке объекта PHP 5, поэтому я не уверен, что может пойти не так.
Я не ожидаю углубленной отладки; Мне просто нужно знать общее направление, в котором я должен искать причину этого изменения свойства, которое по всем правам должно быть массивом.
Заранее спасибо!