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 に答える