我看到过在某些函数前使用@,比如:

$fileHandle = @fopen($fileName, $writeAttributes);

这个符号有什么用?


当前回答

如果打开失败,则生成E_WARNING级别的错误。你可以使用@来屏蔽这个警告。

其他回答

如果打开失败,则生成E_WARNING级别的错误。你可以使用@来屏蔽这个警告。

还要注意,尽管错误被隐藏,任何自定义错误处理程序(使用set_error_handler设置)仍将执行!

它抑制错误消息-请参阅PHP手册中的错误控制操作符。

在这里可能值得添加的是,当使用@时,你应该注意一些指针,以完整地查看这篇文章:http://mstd.eu/index.php/2016/06/30/php-rapid-fire-what-is-the-symbol-used-for-in-php/

即使前面有@符号,错误处理程序仍然会被触发,这只是意味着设置了0的错误级别,这必须在自定义错误处理程序中进行适当处理。 在包含前加上@将把包含文件中的所有错误设置为0的错误级别

@抑制由函数抛出的错误消息。当文件未退出时,Fopen将抛出一个错误。符号使执行移动到下一行,即使文件不存在。我的建议是,当您开发PHP代码时,不要在本地环境中使用它。