3

我正在尝试遍历一个名为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

4

2 回答 2

3

它应该是

foreach ($this->footerList["items"] as $item)
于 2012-07-22T03:15:32.307 回答
0

这在您尝试使用而不是在类内部时最常见$this,您尝试将数组作为对象或在静态方法中引用。

您将需要提供更多代码以获得更清晰的答案。

更新

我格式化了你的输出。

foreach ( (object) $this->footerList->items as $item)

以上内容会将所有子数组转换为对象,以允许您按照计划的方式使用代码。

于 2012-07-22T03:12:59.670 回答