Как скрыть ошибку & quot; Попытка получить свойство необъекта & quot;

У меня есть следующий код, который работает правильно. Друзья Твиттера перечислены правильно, однако кажется, что при отображении последнего элемента ошибка «Уведомление: попытка получить свойство необъекта» отображается 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 />";
}
}

4

Решение

Вы можете добавить средство проверки, если объект имеет определенное свойство, прежде чем использовать его значение

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

}
5

Другие решения

Используйте простое условие 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 />";
}
}
}
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 />";
}
}

попробуй это

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(empty($tweet[$i]->name)) continue;
echo $tweet[$i]->name;
echo "<br />";
}
}
0

Пока принятый ответ будет работать, PHP имеет property_exists() функция, чтобы сделать эту работу и будет более уместным. Он вернет true, даже если свойство имеет нулевое значение, которое isset() не.

if (property_exists($tweets[$i], "name")) {
....
}
0
По вопросам рекламы [email protected]