为什么@在功能之前

时间:2009-07-11 01:59:37

标签: php

在函数之前添加@有什么作用?我在一些脚本中看到了这个

示例:

$connect = @mysql_connect('localhost', 'root', 'password');
 instead of
$connect = mysql_connect('localhost', 'root', 'password');

2 个答案:

答案 0 :(得分:12)

它可以抑制函数内部可能发生的任何错误。 Documentation here

考虑到所有因素,不建议这样做,因为它可能导致一些偷偷摸摸的错误。

答案 1 :(得分:0)

这是错误控制操作符,来自php文档:

  

PHP支持一个错误控制操作符:at符号(@)。当在PHP中添加表达式时,将忽略该表达式可能生成的任何错误消息

     

如果您使用set_error_handler()设置了自定义错误处理函数,那么它仍然会被调用,但是这个自定义错误处理程序可以(并且应该)调用error_reporting(),当触发的调用时它将返回0错误之前是@

     

如果启用了track_errors功能,则表达式生成的任何错误消息都将保存在变量$php_errormsg中。此变量将在每个错误上被覆盖,因此如果要使用它,请提前检查。