我讨厌谷歌不能搜索符号。我在一些示例代码中看到了这一点,并想知道为什么在readfile函数之前有一个@符号:
@readfile($filename);没有@符号会有什么不同?
发布于 2010-04-17 00:27:03
在PHP中,命令前的@意味着不会打印任何错误。它被称为error control operator。
如果您删除了@,并且readfile会遇到错误(例如无法读取文件),那么根据您的PHP设置,错误消息将出现在您的站点内容中;这是您很少想要的。(更糟糕的是,如果在调用header()或start_session()之前发生这种情况,因为一旦发送了内容,就不能再写入标头。)
发布于 2010-04-17 05:48:15
我将@称为"stfu运算符“。
发布于 2010-04-17 00:27:20
使用它,您可以禁止显示错误消息。
提示:
简单地说,不要在速度关键的代码中使用错误抑制运算符。
的未来:
因为@运算符非常慢,它不能在ini_set如@ini_set的未来版本中工作,如PHP6
重要读物:
https://stackoverflow.com/questions/2654570
复制相似问题