@函数调用之前的@字符

这两个函数在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议不要忽略警告或错误,而是修改代码。