如何隐藏错误 "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")) {
....
}
我有以下代码,可以正常工作。 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")) {
....
}