函数调用前的@字符

nix*_*xie 126 php

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

init_get($somevariable);

@init_get($somevariable);
Run Code Online (Sandbox Code Playgroud)

sol*_*mby 195

"@"将使您的函数可能引发的任何php错误无声.

  • 通知也会被静音,所以不仅是错误 (21认同)
  • @将暂时将error_reporting设置为0,但不会“抑制”错误。 (2认同)

Sam*_*son 48

它使错误和警告沉默.请参见错误控制操作符.


Ant*_*oCS 36

如已经回答,@将停止显示错误(如果有).
在性能方面,不建议这样做.

php正在做的是:

  • 读取错误显示状态
  • 设置错误显示以显示没有错误
  • 运行你的功能
  • 将错误显示设置为之前的状态

如果您不希望任何错误显示使用error_reporting(0);.

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

  • 您无法控制的功能(例如邮件)呢?还有哪些其他选择?我现在正在使用@,但是能够以不同的方式做会很棒 (2认同)

小智 8

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

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


Dan*_*tti 6

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