在函数之前添加@有什么作用?我在一些脚本中看到了这个
示例:
$connect = @mysql_connect('localhost', 'root', 'password');
instead of
$connect = mysql_connect('localhost', 'root', 'password');
答案 0 :(得分:12)
它可以抑制函数内部可能发生的任何错误。 Documentation here
考虑到所有因素,不建议这样做,因为它可能导致一些偷偷摸摸的错误。
答案 1 :(得分:0)
这是错误控制操作符,来自php文档:
PHP支持一个错误控制操作符:at符号(
@
)。当在PHP中添加表达式时,将忽略该表达式可能生成的任何错误消息。如果您使用
set_error_handler()
设置了自定义错误处理函数,那么它仍然会被调用,但是这个自定义错误处理程序可以(并且应该)调用error_reporting()
,当触发的调用时它将返回0错误之前是@
。如果启用了track_errors功能,则表达式生成的任何错误消息都将保存在变量
$php_errormsg
中。此变量将在每个错误上被覆盖,因此如果要使用它,请提前检查。