У меня есть следующий код, который работает правильно. Друзья Твиттера перечислены правильно, однако кажется, что при отображении последнего элемента ошибка «Уведомление: попытка получить свойство необъекта» отображается 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 />";
}
}
Вы можете добавить средство проверки, если объект имеет определенное свойство, прежде чем использовать его значение
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 />";
}
}
}
замени это
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 />";
}
}
попробуй это
используйте, если пусто для предотвращения этого уведомления.
$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()
функция, чтобы сделать эту работу и будет более уместным. Он вернет true, даже если свойство имеет нулевое значение, которое isset()
не.
if (property_exists($tweets[$i], "name")) {
....
}