PHP 函数 PlayUrl() 错误:Invalid argument supplied for foreach() 的解决方法
function PlayUrl($jsonData){ // 模拟提交数据函数 \n\t\t$jsonData['vod_play_server'] = '';\n\t$jsonData['vod_play_note']="$$$";\n\t$vodPlayUrl = '';\n\t$vodPlayer = '';\n\t$vod_play_server = '';\n\tforeach ($jsonData['vod_play_list'] as $playList) {\n\t\tforeach ($playList['urls'] as $url) {\n\t\t\t$vodPlayUrl .= $url['name'] . '$' . $url['url'] . '#';\n\t\t}\n\t\t$vodPlayUrl = rtrim($vodPlayUrl, '#');\n\t\t$vodPlayUrl .= '$$$';\n\t\t$vodPlayer.=$playList['player_info']['from'].'$$$';\n\t\t$vod_play_server=$vod_play_server.'no$$$';\n\t}\n\t\n\t$jsonData['vod_play_url'] = rtrim($vodPlayUrl, '$$$');\n\t$jsonData['vod_play_from'] = rtrim($vodPlayer, '$$$');\n\t$jsonData['vod_play_server']=rtrim($vod_play_server, '$$$');\n\treturn $jsonData;\n}\n$item= $detailData['data'];\n\t\t$item=PlayUrl($item);报错Invalid argument supplied for foreach(),我该如何修改内容:出现错误的原因是在函数PlayUrl中的循环语句中,传入的参数不是一个可迭代的数组。可能是因为传入的参数类型不正确或者为空。\n\n要解决这个问题,你可以在调用PlayUrl函数之前,先检查一下传入的参数是否为空或者是否是一个数组类型。如果为空或者不是数组类型,可以给它一个默认值或者进行其他的错误处理。\n\n以下是一个示例的修改代码:\n\nphp\nfunction PlayUrl(\$jsonData) {\n\tif (empty(\$jsonData) || !is_array(\$jsonData)) {\n\t\treturn \$jsonData; // 返回传入的参数,或者进行其他的错误处理\n\t}\n\t\n\t// 其他的代码...\n}\n\n\$item = \$detailData\['data'\];\n\$item = PlayUrl(\$item);\n\n\n这样就可以避免在循环语句中出现错误了。
原文地址: https://www.cveoy.top/t/topic/pHad 著作权归作者所有。请勿转载和采集!