Avatar ·

PHP中@符号(狗)的作用以及错误抑制的工作原理

大家好!我刚开始学习PHP,经常在别人的代码中看到函数前面有一个奇怪的@符号。例如: ```php $file = @fopen('config.php', 'r'); $data = @file_get_contents('http://api.example.com'); @$result = someFunction(); ``` 我明白这与错误有关,但不太清楚具体细节。当我写没有@的代码时,访问不存在的文件或遇到网络问题时会弹出警告(warnings)和致命错误。而使用@时,错误就消失了。但这不可能是正确的解决方案,对吧? 我有几个问题: 1. @运算符具体是如何工作的?它抑制所有错误还是只抑制特定类型? 2. 为什么许多有经验的开发者批评@并建议不要使用它? 3. 有没有正常的替代方法来处理错误而不进行抑制? 请给出一些例子,说明什么时候@确实需要,什么时候这是不好的实践。提前谢谢! <<>>

PHP中@运算符的工作原理