如何隐藏foreach错误?

时间:2011-07-11 21:22:50

标签: php mysql hide

我想隐藏foreach错误。 例如错误:

Warning: Invalid argument supplied for foreach() in C:\AppServ\www\ebook\ara.php on line 65

我怎么能隐藏?

9 个答案:

答案 0 :(得分:6)

永远不要隐藏错误。错误意味着存在错误,您应该尝试修复底层问题而不是隐藏它

此外,我们需要查看一些代码,以便我们知道您传递给foreach的内容。它很像一个数组

答案 1 :(得分:3)

有几种方法:

1)首先检查变量

  if(isset($rows) && is_array($rows))
  {
      foreach($rows as $row) { ... }
  } 

2)使用错误抑制操作符(请不要这样做......)

  foreach(@$rows as $row) { ... }\

3)关闭所有错误(最好不要这样做,否则你会后悔!)

  error_reporting(E_NONE);

答案 2 :(得分:2)

确保传递给它的变量是数组/存在。

请发布一些代码,我们可以为您提供进一步的帮助。

正如其他人在这里所说的那样,你不想隐藏错误......它们会导致你的剧本破裂,这是不好的做法而且你无处可去。

但是,你可以通过在函数前添加@符号来解决错误。

答案 3 :(得分:2)

您可以在php.ini中将错误报告设置为false,但不建议这样做。在尝试弄清楚如何隐藏错误之前,您应该修复错误。

error_reporting(0);

PHP Error Reporting

答案 4 :(得分:2)

正如BoltClock所说,你绝对应该解决这个问题。如果不这样做,可能会导致您以后遇到严重问题。

以下是隐藏错误的几种方法。我把它们放在这里用于教育目的......你不应该没有充分的理由使用它们(这几乎从来没有!)。

您可以将@放在函数前面。

您可以更改display_errors

您可以更改error_reporting

答案 5 :(得分:2)

确保foreach()有计数

if (count($array))
{
   foreach($array as $value)
   {
      //do stuff
   }
}

答案 6 :(得分:1)

// Turn off all error reporting
error_reporting(0);

答案 7 :(得分:0)

在导致错误的代码行前面放置一个@符号。 @符号使PHP能够抑制行上发生的错误。除非您有充分的理由,否则通常不建议这样做。最好修复错误。

答案 8 :(得分:0)

您不能将@符号用于foreach

  

PHP手册: foreach 不支持使用“@”抑制错误消息的功能。