这两个PHP函数调用有什么区别?
init_get($somevariable);
@init_get($somevariable);
这两个PHP函数调用有什么区别?
init_get($somevariable);
@init_get($somevariable);
"@"符号将会抑制你的函数可能产生的任何PHP错误。
trigger_error
函数前面加上@
呢?我在一些代码中看到过这种写法,但它的行为对我来说并不一致。在某些情况下,我确实看到错误被配置的错误处理程序报告,而在其他情况下,似乎没有被报告。 - fritzmg@
符号会将 error_reporting
暂时设置为0,但不会"抑制"错误。 - solidgumby如已回答,@
将停止错误(如果有)的显示。
就性能而言,这不是推荐的方法。
PHP正在做的是:
如果您不想看到任何错误,请使用error_reporting(0);
。
或者只需编写无错误的代码:P
http://www.faqts.com/knowledge_base/view.phtml/aid/18068/fid/38
所有的PHP表达式都可以在前面加上“@”前缀,这样就会关闭该表达式的错误报告。正如大家所说,它可以停止特定函数的错误输出。然而,由于必须两次更改错误显示设置,因此这会大大降低性能。我建议不要忽略警告或错误,而是修复代码。