一尘不染

用PHP中的@运算符抑制错误

php

您认为在PHP中使用@运算符来抑制错误/警告是否有效,而您可能正在处理该错误?

如果是这样,您将在什么情况下使用它?

欢迎使用代码示例。

编辑:注释给回复者。我不想关闭错误报告功能,但是,例如,通常的做法是使用

@fopen($file);

然后再检查…但是您可以通过执行以下操作来消除@

if (file_exists($file))
{
    fopen($file);
}
else
{
    die('File not found');
}

或类似。

我想问题是-是否有@HAS可以用来阻止错误,并且不能以任何其他方式处理?


阅读 289

收藏
2020-05-26

共1个答案

一尘不染

我将抑制该错误 并进行处理 。否则,您可能会遇到 TOCTOU
问题(检查时间,使用时间。例如,在file_exists返回true之后但在fopen之前,文件可能会被删除)。

但是我不会仅仅抑制错误以使它们消失。这些更好地可见。

2020-05-26