我试图让这个功能起作用,但由于某种原因,它在foreach行上出错,说有一个无效的参数。
$scores= TESTAPI::GUL($user->ID);
if (empty($scores)) {
echo "<p>No Scores</p>";
} else {
foreach ($scores as $score) {
echo "<p>".$score."</p>";
}
}
我得到的错误是:PHP Warning: Invalid argument supplied for foreach()
注意:我需要按照当前的顺序保留if... else...
。
for语句的一些变体,在for
之前if(!is_array($scores) && !count($scores) || empty($scores)){
if(!is_array($scores) && !count($scores)){
我无法使用var_dump($scores);
,因为错误发生在我运行的私人网站的页面上(无法提供链接),我无法找到重新创建错误的方法。也许有人知道我可以捕获导致foreach出错的数据并将其保存到日志文件的方法吗?
答案 0 :(得分:1)
如果它不是数组,您可以使用error_log
:
$scores= TESTAPI::GUL($user->ID);
if (empty($scores)) {
echo "<p>No Scores</p>";
} else {
if(!is_array($scores)) {
$scores_info = print_r($scores, true);
error_log('$scores is no array but: ' . $scores_info);
echo "<p>No Scores</p>";
} else {
foreach ($scores as $score) {
echo "<p>".$score."</p>";
}
}
}
它将写入错误日志。您可以在the error_log doc处了解详情,了解如何配置它。当你知道错误是什么时,你应该清楚地干掉它,但是为了临时捕获它,这有用......