我想隐藏foreach错误。 例如错误:
Warning: Invalid argument supplied for foreach() in C:\AppServ\www\ebook\ara.php on line 65
我怎么能隐藏?
答案 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)
答案 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 不支持使用“@”抑制错误消息的功能。