Twitter API 未定义 PHP 索引

Twitter API undefined PHP index

我正在使用 this Twitter API code 在我的网站上显示推文。目前我收到 "undefined index" PHP 错误,这些错误不会影响功能,但我想知道正确的解决方法。我猜我需要先检查 Twitter API 的响应是否存在,然后再定义变量,但不确定正确的方法。

这是代码示例:

$id = $tweet['id'];
$formattedTweet = !$isRetweet ? formatTweet($tweet['full_text']) : formatTweet($retweet['full_text']);
$statusURL = 'http://twitter.com/' . $userScreenName . '/status/' . $id;
$date = timeAgo($tweet['created_at']);
$mediaURL = $tweet['entities']['media'][0]['media_url_https'];

比方说,返回的推文没有图像,然后我将从 $mediaURL 变量中得到错误 Notice: Undefined index: media in ...。我该如何解决?

您需要添加 var_dump($tweet) 以查看 $tweet 包含的内容。该错误意味着 $tweet['entities'] 数组中没有 media 这样的键(假设 $tweet$tweet['media'] 都是基于您提供的方式的数组)。之后,您可以使用 isset 函数或 Null 合并运算符来检查您要查找的密钥是否存在,然后采取必要的措施。

例如

$mediaUrl = $tweet['entities']['media'][0]['media_url_https'] ?? ''; 

尝试使用isset检查,示例:

$mediaURL = '';
if( isset($tweet['entities']['media'][0]['media_url_https']) ){
   $mediaURL = $tweet['entities']['media'][0]['media_url_https'];
}