【问题标题】:Foreach code not workingForeach 代码不起作用
【发布时间】:2012-04-27 23:33:06
【问题描述】:

我无法弄清楚这段代码有什么问题:

}else{
$error_message = '<span class="error">';
foreach($error as $key => $values){
    $error_message.= "$values<br />";
}
$error_message.="</span><br /><br />";
}

我得到错误:

警告:在第 45 行的 FILE DIRECTORY 中为 foreach() 提供的参数无效

第 45 行是 foreach($error...

已解决:我的问题是我弄乱了大括号的位置,从而弄乱了数组

【问题讨论】:

  • 请显示生成$error的代码。
  • $error 不能是数组(或其他可迭代类型)
  • 您的 $error 变量显然不是应有的数组。将var_dump($error); 放在该foreach 前面并查找结果。
  • 错误消息是您最好的朋友,您甚至在问之前就得到了问题的答案,但遗憾的是,您忽略了它......
  • @Matt 不要将 [已解决] 放在问题的标题中。请在下面选择一个答案,或者自己添加一个答案,说明您是如何解决问题的。

标签: php foreach if-statement


【解决方案1】:

错误信息说$error 不是一个数组。您可以在循环之前通过var_dump($error); 进行检查以检查它是什么。

【讨论】:

  • 我确实在我的代码前面将 $error 设置为一个数组。但它响应为空,对此有何建议?
  • @Matt 错误信息不会说谎。 var_dump它你有什么?
  • 会不会是您显示的代码在函数内部,而$error 是在函数外部定义的?
【解决方案2】:

如果$error 有时为空,那么以下内容就足够了:

}else{
    if(!empty($error)){ // only attempt to build error messages if there are errors
        $error_message = '<span class="error">';
        foreach($error as $key => $values){
            $error_message.= "$values<br />";
        }
        $error_message.="</span><br /><br />";
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-03
    • 2017-04-11
    相关资源
    最近更新 更多