11

我讨厌谷歌无法搜索符号。我在一些示例代码中看到了这一点,并想知道为什么在 readfile 函数之前有一个 @ 符号:

@readfile($filename);

与没有 @ 符号有何不同?

4

6 回答 6

20

PHP 中的@前置命令意味着不打印任何错误。它被称为错误控制运算符

如果您删除了@并且readfile会遇到错误(例如无法读取文件),那么根据您的 PHP 设置,错误消息将出现在您的网站内容中;你很少(如果有的话)想要的东西。(甚至会变得更糟,如果这发生在调用之前,header()或者start_session()因为一旦发送内容,标题就不能再被写入了。)

于 2010-04-16T16:27:02.943 回答
10

我将 @ 称为“stfu 运算符”。

于 2010-04-16T21:48:15.130 回答
6

它是 PHP 的错误抑制运算符。有了它,您可以抑制错误消息。

小费:

不要将错误抑制运算符与速度关键代码一起使用。

未来:

因为@操作符很慢,它不会在未来的 PHP 版本中工作,ini_set例如@ini_setPHP6

重要阅读:

@ 运算符的错误使用

于 2010-04-16T16:27:20.213 回答
5

它是错误控制运算符。手册会告诉你一切...

于 2010-04-16T16:27:28.580 回答
3

@ 表示“不显示错误/警告”

于 2010-04-16T16:27:20.447 回答
0

供参考

您可以使用“”在 google 中搜索包含特殊字符的查询。

搜索示例 - PHP 中的 @readfile? 搜索一下

您可以搜索- “PHP 中的@readfile?” 搜索一下

于 2020-08-07T08:13:05.847 回答