php Indirect modification of overloaded property ... has no effect -- Ошибка при работе с виртуальными свойствами (часто в MVC)
Primary tabs
Indirect modification of overloaded property ... has no effect
В моем случае я пытаюсь записать значение в массив.
Причина
Скорее всего вы пишити что-то вроде:
$this->report_ids[] = $report->_id; // добавляем в массив
но при этом у вас нет реального поля report_ids, а используются магические методы _set и _get
-- поэтому когда вы пишите так как выше обращение вида:
$this->report_ids[]
производит чтение массива, при этом просто возвращается копия значения, далее тут же происходит присваивание, но это присваивание делается для копии, а чем и сообщает интерпретатор.
Решение
Измените код вида (пример для добавления значения в массив):
$this->report_ids[] = $report->_id; // добавляем в массив
на код вида:
$this->report_ids = array_merge($this->report_ids, [$report->_id]);
- Log in to post comments
- 4380 reads