【发布时间】:2011-11-14 21:33:16
【问题描述】:
我遵循良好的编程实践,我将 PHP 错误记录到文件中,而不是向用户显示。我为此使用set_error_handler()。
现在的问题。例如,我在某处:
@file_exists('/some/file/that/is/outside/openbasedir.txt');
但是尽管有错误抑制操作符,错误信息还是会记录下来。我不想要那个。我希望抑制的错误不会传递给我的错误处理程序。
【问题讨论】:
-
避免使用
@。这是一个好兆头,表明您做错了什么并且不想修复它。但是,即使语句本身通过@“静音”,也会调用错误处理程序回调。 -
我完全同意 KingCrunch ,隐藏错误真的是
BAD PRACTICE你应该停止这样做 -
它们不是错误,它们是通知。
-
你考虑用
isset()测试你的局部变量告诉我,你肯定做错了什么:初始化你的局部变量! -
Warning: file_exists(): open_basedir restriction in effect. File(/some/path) is not within the allowed path(s):,如果您知道如何在没有@运算符的情况下避免此警告,请协助。
标签: php logging operator-keyword error-reporting