在此article中,它提到:
foreach 不支持使用' @'来抑制错误消息。
如何避免输出foreach
错误?我不想看到:
警告:为foreach()提供的参数无效
有没有办法做出if else
判断?
答案 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%的解决方案!