Я пытаюсь выполнить итерацию через свойство объекта, которое называется items
, содержащим массив:
foreach ($this->footerList->items as $item)
Когда я выполняю инструкцию, я получаю сообщение об ошибке: «Попытка получить свойство не-объекта», хотя
var_dump($this->footerList)
показывает, что $this->footerList
действительно содержит массив items
.
object(FooterModel)#13 (1) { ["items"]=> array(3) { [0]=> array(5) { ["id"]=> string(20) "terms-and-conditions" ["title"]=> string(20) "Terms and Conditions" ["url"]=> string(23) "home/termsandconditions" ["label"]=> string(20) "Terms and Conditions" ["authenticatedOnly"]=> string(5) "false" } [1]=> array(5) { ["id"]=> string(14) "privacy-policy" ["title"]=> string(14) "Privacy Policy" ["url"]=> string(18) "home/privacypolicy" ["label"]=> string(14) "Privacy Policy" ["authenticatedOnly"]=> string(5) "false" } } }
Может кто-то, пожалуйста, помогите мне выяснить, почему оператор цикла не может разрешить $this->footerList->items
?
Должен быть
foreach ($this->footerList["items"] as $item)
Это чаще всего наблюдается, когда вы пытаетесь использовать $this
а не внутри класса, вы пытаетесь ссылаться на массив как объект или внутри статического метода.
Вам нужно будет предоставить еще один код, чтобы получить более четкий ответ.
Обновить
Я отформатировал ваш результат.
foreach ( (object) $this->footerList->items as $item)
Вышеприведенное действие приведет все ваши подмассивы к объектам, чтобы вы могли использовать свой код так, как планировали его.