Php 这个foreach代码有什么问题吗? foreach($data['tests']as$testname=>$tests){ echo“提取$testname测试\n”; $function=$testfunctions[$testname]; 回声“”; foreach($tests作为$test){ echo“”$test['description']; $extracted=$extractor->$function($test['text']); 如果($test['expected']==$extracted){ 回声“已通过。”; }否则{ echo“失败”; echo“原件:.htmlspecialchars($test['text'])。”\n预期:“.print\r($test['expected'],true)。”\n实际:“.print\r($extracted,true)。”; } 回声“”; } 回声“”;}

Php 这个foreach代码有什么问题吗? foreach($data['tests']as$testname=>$tests){ echo“提取$testname测试\n”; $function=$testfunctions[$testname]; 回声“”; foreach($tests作为$test){ echo“”$test['description']; $extracted=$extractor->$function($test['text']); 如果($test['expected']==$extracted){ 回声“已通过。”; }否则{ echo“失败”; echo“原件:.htmlspecialchars($test['text'])。”\n预期:“.print\r($test['expected'],true)。”\n实际:“.print\r($extracted,true)。”; } 回声“”; } 回声“”;},php,programming-languages,Php,Programming Languages,我不断得到错误: 警告:为提供的参数无效 中的foreach() C:\xampp\htdocs\test\runtests.php 第49行 p、 代码的开头是第49行,因此问题从foreach语句开始。在$data[“tests”]中的一个元素可能不是数组 在foreach之前添加以下内容: if (is_array($tests)) foreach ($tests as $test) {... $data[“tests”]中的一个元素可能不是数组 在foreach之前添加以下内容: i

我不断得到错误:

警告:为提供的参数无效 中的foreach() C:\xampp\htdocs\test\runtests.php 第49行


p、 代码的开头是第49行,因此问题从foreach语句开始。

$data[“tests”]
中的一个元素可能不是数组

在foreach之前添加以下内容:

if (is_array($tests))
 foreach ($tests as $test) {...

$data[“tests”]
中的一个元素可能不是数组

在foreach之前添加以下内容:

if (is_array($tests))
 foreach ($tests as $test) {...

每当我看到这一点,它往往意味着我试图迭代的对象不是数组


检查
$data['tests']
(以及每个内部
$tests
)以确保它不是null/unset/empty,并且它是类似于数组的可移植对象。还要记住,旧版本的PHP(5.0之前?)不能很好地处理可移植对象。

每当我看到这一点时,它往往意味着我尝试迭代的对象不是数组


检查
$data['tests']
(以及每个内部
$tests
)以确保它不是null/unset/empty,并且它是类似于数组的可移植对象。还要记住,旧版本的PHP(5.0之前?)不能很好地处理可移植对象。

似乎
$tests
$data['tests']
不是数组。做一个
print\r($data['tests'])
看看它是什么。它没有显示任何内容,但错误仍然存在:(,感谢
$tests
$data['tests']
不是数组。做一个
print\r($data['tests'])
看看它是什么。它没有显示任何内容,但错误仍然存在:((,thanksi修复了错误,数组中没有数据,只是第40行有一点语法!!:))thanksi修复了错误,数组中没有数据,只是第40行有一点语法!!:))谢谢