2014-01-26 159 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; 
} 
相关问题