我一直在收到以下错误:
PHP Warning: Invalid argument supplied for foreach() in /home/~accountname~/public_html/index.php on line 140
这是第40行的代码;
<p>
<?php foreach ($Homes3 as $Home) {
echo $Home['home_3'];
} ?>
</p>
对于今天最好的部分并且不知道为什么,它在今天之前一直运作良好。
答案 0 :(得分:1)
这是因为变量$Home3
不满足foreach
构造的要求,这要求第一个参数是数组。
如果您不确定变量或数组是否总是设置为somewhow,则应在代码中初始化它。我不能举一个例子,因为提供的代码只是输出。
但它看起来像这样:
$Homes3 = []; // This sets it to an empty array
然后你有了设置它的代码,例如来自数据库查询或表单数据。
或者,如果上述情况不可行,您可以在尝试使用之前检查它是否为数组。第一个建议是更好,因为你正确地管理数组,foreach
中使用的空数组将什么都不做,不会产生错误或警告。但有时候,特别是在较旧的代码中,并不总是可能的。
if (is_array($Homes3)) {
foreach ($Homes3 as $Home) {
echo $Home['home_3'];
}
}
如果不是数组,你可以输出另一条消息,例如“没有找到数据”(或更好的东西)。
所有这些都说,因为你只回显一个数组键($Home['home_3']
),你可以取消循环并执行此操作:
echo isset($Homes['home_3']) ? $Homes['home_3'] : 'No data found';
但也许你的代码只是一个例子。