@函数调用之前的@字符
这两个函数在PHP中的区别是什么?
init_get($somevariable); @init_get($somevariable);
“@”会消除你的函数可能引起的任何php错误。
它使错误和警告声音沉默。 请参阅错误控制操作员 。
正如已经回答的@
将停止显示错误(如果有的话)。
在性能方面,这是不build议的。
什么PHP正在做的是:
- 读取错误显示状态
- 设置错误显示以显示没有错误
- 运行你的function
- 将错误显示设置为之前的状态
如果你不想显示任何错误使用error_reporting(0);
。
或者只是写无缺陷的代码:P
http://www.faqts.com/knowledge_base/view.phtml/aid/18068/fid/38
所有PHPexpression式都可以用“@”前缀来调用,这会closures特定expression式的错误报告。
正如大家所说,它会停止输出该特定function的错误。 但是,由于必须更改错误显示设置两次,所以这大大降低了性能。 我会build议不要忽略警告或错误,而是修改代码。