2014-01-26 156 views
-1

我通過一些數據,看起來像這樣的循環:爲什麼我不能訪問的對象屬性在foreach PHP

Array 
(
[0] => stdClass Object 
    (
     [id] => 1 
     [email] => [email protected] 
     [fname] => joe1 
     [lname] => someone 
     [sent] => 0 
    ) 

[1] => stdClass Object 
    (
     [id] => 2 
     [email] => [email protected] 
     [fname] => joe2 
     [lname] => someone 
     [sent] => 0 
    ) 

) 

我只是通過這樣的陣列循環...

foreach ($recipients as $key => $u) { 
    //build email 
    echo $u->fname; 

      } 

沒有什麼是迴盪,我收到此錯誤

嚴重性:注意 消息:試圖讓非對象

財產10

感謝您的幫助。

+4

然後會發生什麼?從這裏看起來不錯。你怎麼沒有真正描述會發生什麼?你有沒有想過提供儘可能多的信息,以獲得更好的幫助,而不是像這樣的尖刻的評論? :) – Nanne

+0

你得到什麼錯誤?我們可以看看$ recipients被定義/填充的代碼嗎? – MrVimes

+1

@Nanne這個網站如果不是snarky的評論,它不會很棒:-)道歉,添加了實際的錯誤 – jhodgson4

回答

1

我想問題是,$u並不總是你期望的stdClass。我只是通過這種方式更改代碼,看看會發生什麼:

foreach ($recipients as $key => $u) { 

    if (!is_object($u)) { 
     echo "\$u is not an object!"; 
     var_dump($u); 
     exit; 
    } 

    if (!property_exists($u, 'fname')) { 
     echo "property fname is not defined!"; 
     var_dump($u); 
    } 

    echo $u->fname; 
} 
相關問題