如何避免输出foreach错误?

时间:2011-06-04 23:00:47

标签: php foreach

在此article中,它提到:

  

foreach 不支持使用' @'来抑制错误消息。

如何避免输出foreach错误?我不想看到:

  

警告:为foreach()提供的参数无效

有没有办法做出if else判断?

4 个答案:

答案 0 :(得分:5)

在foreach之前检查变量是否包含数组:

if (is_array($var))
{
   foreach...
}

答案 1 :(得分:5)

使用这样的(数组)作为变量的前缀。

foreach( (array) $array_thats_not_an_array as $key => $value ){
    echo $key . ' ' . $value;
}

答案 2 :(得分:0)

if(!empty($array)) {
  foreach($array as $a) {
    // do something
  }
}

答案 3 :(得分:0)

我使用了OZ的建议,但在is_array测试中出错。

但是在要测试的数组名称之前添加@可以解决问题。

    if (is_array((@$errors))){
      foreach ($errors as $error): ?>
        <?php echo $error; ?>
        <br/>
      <?php endforeach;
    }

是的,我知道使用@是伪劣的,但是我不能得到一点点继承代码来正常工作。我可以花一个小时解决这个问题,以解决“您的变量未定义”的问题,或者坚持使用@并获得其他非常有用的版本,以便明天与朋友共享。哦,是的晚上11点,我的大脑迷糊了!

ATB脾气暴躁的先生
PS非常感谢OZ_提供了95%的解决方案!