2015-05-04 135 views
4

我有以下代码,它可以正常工作。 Twitter好友列表正确,但是当最后一项显示错误“注意:试图获取非对象的属性”时显示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 />"; 
    } 
} 
+1

没有,正常访问的价值观,你不会有问题,不要试图隐藏的错误,并尝试解决这些问题,这是什么'$ tweet6'包含反正 – Ghost

+0

$ tweets6是对象的列表,它在我的代码 – user2675041

回答

4

你可以添加一个检查,如果该对象具有一定的属性使用其值之前

if (isset($tweet[$i]->name)) { 
    // process 

} 
+0

谢谢,这解决了这个问题! – user2675041

1

替换此:

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 />"; 
    } 
} 

试试这个

+0

定义我已经试过了,它去掉了错误,而且最后一个项目 – user2675041

+0

@ user2675041我已经编辑我的代码,所以请到通过,希望它有助于 –

1

使用简单,如果之前打印条件..

$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 />"; 
    } 
    } 
} 
0

的使用,如果为空阻止该通知。

$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 />"; 
    } 
} 
0

虽然接受的答案将工作,PHP有property_exists()函数来完成这个工作,会更合适。即使该属性具有空值,它也会返回true,而isset()不会。

if (property_exists($tweets[$i], "name")) { 
    .... 
} 
相关问题