函数调用前的@字符

时间:2010-01-04 22:06:58

标签: php

PHP中这两个函数调用有什么区别?

init_get($somevariable);

@init_get($somevariable);

5 个答案:

答案 0 :(得分:188)

“@”会消除你的功能可能引起的任何php错误。

答案 1 :(得分:47)

它使错误和警告沉默。请参阅Error Control Operators

答案 2 :(得分:34)

如前所述,@将停止显示错误(如果有) 在性能方面,不建议这样做。

php正在做的是:

  • 阅读错误显示状态
  • 将错误显示设置为显示无错误
  • 运行您的功能
  • 将错误显示设置为之前的状态

如果您不希望出现任何错误,请使用error_reporting(0);

或者只是编写无错误代码:P

答案 3 :(得分:8)

http://www.faqts.com/knowledge_base/view.phtml/aid/18068/fid/38

可以使用“@”前缀调用所有PHP表达式,该前缀将关闭 该特定表达式的错误报告。

答案 4 :(得分:6)

正如大家所说,它会停止该特定功能的错误输出。但是,这会大大降低性能,因为它必须两次更改错误显示设置。我建议不要忽略警告或错误并修改代码。