Twitter API 未定义的 PHP 索引 [重复]

Twitter API undefined PHP index [duplicate]

提问人:user13286 提问时间:4/7/2018 更新时间:4/7/2018 访问量:257

问:

我正在使用此 Twitter API 代码在我的网站上显示推文。目前,我收到“未定义索引”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 ...

php 未定义索引

评论


答:

0赞 banstola 4/7/2018 #1

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

例如

$mediaUrl = $tweet['entities']['media'][0]['media_url_https'] ?? ''; 
1赞 Khaled Alam 4/7/2018 #2

尝试使用 isset 进行检查,例如:

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