我讨厌谷歌无法搜索符号。我在一些示例代码中看到了这一点,并想知道为什么在 readfile 函数之前有一个 @ 符号:
@readfile($filename);
与没有 @ 符号有何不同?
PHP 中的@
前置命令意味着不打印任何错误。它被称为错误控制运算符。
如果您删除了@
并且readfile
会遇到错误(例如无法读取文件),那么根据您的 PHP 设置,错误消息将出现在您的网站内容中;你很少(如果有的话)想要的东西。(甚至会变得更糟,如果这发生在调用之前,header()
或者start_session()
因为一旦发送内容,标题就不能再被写入了。)
我将 @ 称为“stfu 运算符”。
它是 PHP 的错误抑制运算符。有了它,您可以抑制错误消息。
小费:
不要将错误抑制运算符与速度关键代码一起使用。
未来:
因为@
操作符很慢,它不会在未来的 PHP 版本中工作,ini_set
例如@ini_set
PHP6
重要阅读:
它是错误控制运算符。手册会告诉你一切...
@ 表示“不显示错误/警告”