我有一些PHP代码。当我运行它时,会出现一条警告消息。
如何删除/屏蔽/忽略这些警告消息?
我有一些PHP代码。当我运行它时,会出现一条警告消息。
如何删除/屏蔽/忽略这些警告消息?
当前回答
我在我的php.ini中这样做:
error_reporting = E_ALL & ~E_WARNING & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
这只记录致命错误,没有警告。
其他回答
您可以使用error_reporting抑制警告,但更好的方法是首先修复脚本。
您确实应该修复引起警告的原因,但是可以使用error_reporting()控制错误的可见性。要跳过警告信息,你可以使用如下命令:
error_reporting(E_ERROR | E_PARSE);
禁用警告,同时启用所有其他错误报告:
error_reporting(E_ALL ^ E_WARNING);
已经有错误控制操作符的答案,但它缺乏解释。你可以对每个表达式使用@操作符,它会隐藏错误(致命错误除外)。
@$test['test']; //PHP Notice: Undefined variable: test
@(14/0); // PHP Warning: Division by zero
//This is not working. You can't hide Fatal Errors this way.
@customFuntion(); // PHP Fatal error: Uncaught Error: Call to undefined function customFuntion()
对于调试来说,它是一种快速、完善的方法。但是永远不要在生产环境中使用它,也不要在本地版本中永久包含它。这会给你带来很多不必要的刺激。
相反,你应该考虑:
1. 错误报告设置,如已接受的答案中所述。
error_reporting(E_ERROR | E_PARSE);
或从PHP INI设置
ini_set('display_errors','Off');
2. 捕获异常
try {
$var->method();
} catch (Error $e) {
// Handle error
echo $e->getMessage();
}
我在我的php.ini中这样做:
error_reporting = E_ALL & ~E_WARNING & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
这只记录致命错误,没有警告。