如何隐藏错误 "Trying to get property of non-object"

How to hide error "Trying to get property of non-object"

我有以下代码,可以正常工作。 Twitter 好友列表正确,但是当显示最后一项时,错误 "Notice: Trying to get property of non-object" 似乎显示了 4 次。

由于代码可以正常工作,我想要一种隐藏这些错误的方法。

$connection = getConnectionWithAccessToken($consumerkey, $consumersecret, $accesstoken, $accesstokensecret);
$tweets6 = $connection->get("https://api.twitter.com/1.1/friends/list.json?screen_name=".$twitteruser."&count=".$notweets);
foreach ($tweets6 as $tweet)
{
    for($i = 0; $i < count($tweet); $i++)
    {
        echo $tweet[$i] -> name;
        echo "<br />";
    }
}

替换这个:

for($i = 0; $i < count($tweet); $i++)

用这个:

for($i = 0; $i < count($tweet) - 1; $i++)

编辑

for($i = 0; $i < count($tweet); $i++){
    if (isset($tweet[$i]->name)) {
        echo $tweet[$i] -> name;
        echo "<br />";
    }
}

试试这个

如果对象具有特定的属性,您可以在使用它的值

之前添加一个检查器
if (isset($tweet[$i]->name)) {
    // process

}

在打印前使用一个简单的 if 条件..

   $connection = getConnectionWithAccessToken($consumerkey, $consumersecret, $accesstoken, $accesstokensecret);
   $tweets6 = $connection->get("https://api.twitter.com/1.1/friends/list.json?screen_name=".$twitteruser."&count=".$notweets);
foreach ($tweets6 as $tweet)
{
   for($i = 0; $i < count($tweet); $i++){  
     if($tweet[$i]){
        echo $tweet[$i] -> name;
        echo "<br />";
     }
   }
}

如果为空则使用以防止该通知。

$connection = getConnectionWithAccessToken($consumerkey, $consumersecret, $accesstoken, $accesstokensecret);
$tweets6 = $connection->get("https://api.twitter.com/1.1/friends/list.json?screen_name=".$twitteruser."&count=".$notweets);
foreach ($tweets6 as $tweet)
{
    for($i = 0; $i < count($tweet); $i++)
    {
        if(empty($tweet[$i]->name)) continue;
        echo $tweet[$i]->name;
        echo "<br />";
    }
}

虽然接受的答案有效,但 PHP 具有 property_exists() 功能来完成这项工作,并且会更合适。即使 属性 有空值,它也会 return 为真,而 isset() 没有。

if (property_exists($tweets[$i], "name")) {
    ....
}