foreach ($data['tests'] as $testname => $tests) {
echo "<h1>Extraction $testname Tests</h1>\n";
$function = $testfunctions[$testname];
echo "<ul>";
foreach ($tests as $test) {
echo "<li>" . $test['description'] . ' ... ';
$extracted = $extractor->$function($test['text']);
if ($test['expected'] == $extracted) {
echo " <span style='color: green'>passed.</span></li>";
} else {
echo " <span style='color: red'>failed.</span>";
echo "<pre>Original: " . htmlspecialchars($test['text']) . "\nExpected: " . print_r($test['expected'], true) . "\nActual : " . print_r($extracted, true) . "</pre>";
}
echo "</li>";
}
echo "</ul>";}
我一直收到错误:
警告:提供的参数无效 foreach()in C:\ xampp \ htdocs \ test \ runtests.php on 第49行
P.S。代码的开头是第49行,因此probelm以foreach语句开头。
答案 0 :(得分:3)
每当我看到它时,它往往意味着我试图迭代的东西不是数组。
检查$data['tests']
(以及每个内部$tests
)以确保它不是null / unset / empty,并且它可以像数组一样迭代。还要记住,旧版本的PHP(5.0之前的版本?)不能很好地处理可迭代对象。
答案 1 :(得分:1)
$data["tests"]
中的一个元素可能不是数组。
在foreach之前添加:
if (is_array($tests))
foreach ($tests as $test) {...