Php I';我的代码中出现了这个异常错误,为foreach()提供的参数无效
我正在检查Php I';我的代码中出现了这个异常错误,为foreach()提供的参数无效,php,Php,我正在检查$errors变量是否为空,但是foreach()仍然抱怨参数无效: <?php if (empty($errors) === false) { ?> <ul> <?php foreach ($errors as $error) { echo "<li>{$error}</li>";
$errors
变量是否为空,但是foreach()
仍然抱怨参数无效:
<?php
if (empty($errors) === false) {
?>
<ul>
<?php
foreach ($errors as $error) {
echo "<li>{$error}</li>";
}
?>
</ul>
<?php
}
?>
所以,如果$errors设置为整数值2,空的($errors)将返回true。但是,它不是数组,因此对于foreach循环无效
而是使用is_array()
也考虑,为了调试,使用VARYDUMP($Error)并查明该点是什么。
尝试一起使用,而不是像
一样使用。 is_array-查找变量是否为数组$errors可能不是数组,因此必须检查其类型或将其转换为数组。一个简单的例子:
<?php
if (empty($errors) === false) {
?>
<ul>
<?php
foreach((array) $errors as $error){
echo "<li>{$error}</li>";
}
?>
</ul>
<?php
}
?>
尝试使用is_数组
和计数
而不是像那样使用空
如果(is_数组($errors)&&count($errors)>0){
@Uchiha回答这个问题,这是正确的solution@user,我删除了元评论(抱怨你的帖子被否决)从你的问题,因为它只会增加噪音。请不要在将来做这件事。它可能是,但看起来它可能不到它的时间。欢迎使用动态类型的无数乐趣。使用iSyRayay.()并证明它仍然是一个数组。也考虑,仅用于调试,使用VARYDUMP($错误)。在调用foreach之前,您是否直接在该行上运行var_dump($errors)?是(评论必须至少包含15个字符才能发布)好吧,那么要么你遗漏了什么,要么你发现了一个非常奇怪的错误。试着发布var_dump的输出以及错误的精确措辞。不客气。很高兴帮助@user3573987(仅供参考:如果这些答案真的对你有帮助,你可以接受或投票)这不会抛出错误,但它肯定会在if
条件下运行
<?php
if (empty($errors) === false) {
?>
<ul>
<?php
foreach((array) $errors as $error){
echo "<li>{$error}</li>";
}
?>
</ul>
<?php
}
?>