PHP警告:非法字符串偏移量&;为foreach()提供的参数无效
当没有任何结果时,会出现以下两个错误:PHP警告:非法字符串偏移量&;为foreach()提供的参数无效,php,error-handling,warnings,Php,Error Handling,Warnings,当没有任何结果时,会出现以下两个错误: 中的非法字符串偏移量“艺术家” 为foreach()提供的参数无效 下面的代码匹配用户搜索的结果,并通过last.fm API返回信息,该代码位于不同的文件中,不会导致问题 当没有搜索结果且foreach循环试图在没有数据的情况下执行时,就会出现问题。现在需要的是某种类型的错误捕捉,而我尝试过的任何方法都不起作用 由于它是一个foreach循环,所以catch语句似乎不起作用 if(!isset($json['results']['artistmatc
- 中的非法字符串偏移量“艺术家”
- 为foreach()提供的参数无效
if(!isset($json['results']['artistmatches']['artist'][0]))
{
echo '<div class="alert alert-danger">Artists Not Found</div>';
}
else
{
foreach ($json['results']['artistmatches']['artist'] as $track)
{
$artist = $track['name'];
$image = $track['image'][3]['#text'];
$url = preg_replace("/ /s","_" , $artist);
if($artist&&$image)
{
include('./artist_short.php');
}
}
}
if(!isset($json['results']['artistmatches']['artist']]0]))
{
回声“找不到艺术家”;
}
其他的
{
foreach($json['results']['artistmatches']['artist']作为$track)
{
$artist=$track['name'];
$image=$track['image'][3]['#text'];
$url=preg_replace(“//s”,“_”,“$artist”);
如果($artist&&$image)
{
包括('./artist_short.php');
}
}
}
添加检查结果是否为数组的if语句
if(is_array($json['results']['artistmatches'])) {
foreach ($json['results']['artistmatches']['artist'] as $track)
{
$artist = $track['name'];
$image = $track['image'][3]['#text'];
$url = preg_replace("/ /s","_" , $artist);
if($artist&&$image)
{
include('./artist_short.php');
}
}
} else {
//handle case where the condition doesn't match.
}
不是重复,对于这个问题,我确实尝试过这种方法,但是我没有包括某些数组字段。另一个是通用的解决方案,我尝试过,但不起作用;因此,我像应该的那样使用这个网站,询问社区是否知道解决方案。正如您所看到的,使用该解决方案,我不会想到将结果和artistmatches(而不是artist)添加到is_数组语句中,因此它是不同的。当我尝试使用该解决方案但它不起作用时,我询问了为我提供解决方案的社区,假定它使用相同的is_数组函数,但这就是相似之处的结束。请不要对此感到生气,但我觉得你的目的是贬低他人,你给我的印象是,如果你可以的话,你会禁止我进入这个网站。我请求帮助,当我找不到其他可行的解决方案时,我得到了帮助。我在讨论中又发了帖子