Php 如何避免输出foreach错误?
在这方面,它提到: foreach不支持使用“@”抑制错误消息的功能 如何避免输出Php 如何避免输出foreach错误?,php,foreach,Php,Foreach,在这方面,它提到: foreach不支持使用“@”抑制错误消息的功能 如何避免输出foreach错误?我不想看到: 警告:为foreach()提供的参数无效 是否有办法在foreach检查变量是否包含数组之前做出if-else判断?: if (is_array($var)) { foreach... } 用(数组)作为变量的前缀,如下所示 foreach( (array) $array_thats_not_an_array as $key => $value ){ echo
foreach
错误?我不想看到:
警告:为foreach()提供的参数无效
是否有办法在foreach检查变量是否包含数组之前做出
if-else
判断?:
if (is_array($var))
{
foreach...
}
用(数组)作为变量的前缀,如下所示
foreach( (array) $array_thats_not_an_array as $key => $value ){
echo $key . ' ' . $value;
}
我使用了OZ的建议,但在
is\u数组
测试中出错
但是在要测试的数组的名称之前添加一个@
,效果很好
if (is_array((@$errors))){
foreach ($errors as $error): ?>
<?php echo $error; ?>
<br/>
<?php endforeach;
}
if(是_数组(@$errors))){
foreach($errors作为$error):?>
这很简单。只要不要为foreach
提供无效参数。避免错误,而不是抑制错误。您的代码不应该包含任何@
。我发现使用if
块更为明确。如果$array\u不是数组的将包含对象,那么代码会做什么?资源?如果$array\thats_not_an_数组
包含错误类型,因为算法编码有错误?错误将被静音,并且更难找到。您完全正确,我不会在这种情况下使用它。但他不想看到错误。“我不想看到警告:为foreach()提供的参数无效。”;)当您通过引用修改数组时,这种方法也不起作用;foreach((数组)$arr as&$val)$val+=2;
数组的元素不会被更改。你应该检查它是否是数组。如果它是空的,就不会有任何错误,所以你不需要测试它。@Matthieu:避免错误不是完全符合海报的要求吗?是的,这是我的观点,检查数组是否为空是没有用的,因为即使没有测试,也不会有错误这不是一个错误你不需要测试数组是否为空,如果为空就不会有任何错误。空数组上的foreach不会引发错误。我疯了吗?$var=array();foreach($var as$elem)echo'A';
不会引发任何错误。@Matthieu我的意思是“它工作”,你的意思是“这个代码错了”,对不起。
if (is_array((@$errors))){
foreach ($errors as $error): ?>
<?php echo $error; ?>
<br/>
<?php endforeach;
}