我有一些PHP代码。当我运行它时,会出现一条警告消息。
如何删除/禁止/忽略这些警告消息?
答案 0 :(得分:299)
您确实应该修复导致警告的任何内容,但您可以使用error_reporting控制错误的可见性。要跳过警告消息,您可以使用以下内容:
error_reporting(E_ERROR | E_PARSE);
答案 1 :(得分:103)
您可以在函数调用前放置@以禁止显示所有错误消息。
@yourFunctionHere();
答案 2 :(得分:35)
在启用所有其他错误报告的同时禁止显示警告:
error_reporting(E_ALL ^ E_WARNING);
答案 3 :(得分:27)
答案 4 :(得分:12)
如果要在显示所有其他错误时禁止显示警告和其他一些错误类型(例如,通知),您可以执行以下操作:
error_reporting(E_ALL & ~E_WARNING & ~E_NOTICE);
答案 5 :(得分:10)
不完全回答这个问题,但我认为在某些情况下这是一个更好的妥协:
由于第三方库中的printf()语句,我收到了警告消息。我确切地知道原因是什么 - 在第三方修复他们的代码时临时解决问题。我同意警告不应该被禁止,但是我无法向客户展示我的工作,并在屏幕上弹出警告消息。我的解决方案:
printf('<div style="display:none">');
...Third-party stuff here...
printf('</div>');
警告仍然在页面源中作为提醒给我,但对客户来说是不可见的。
答案 6 :(得分:10)
隐藏警告消息集error_reporting(0)在公共包含文件或单个文件的顶部。
在Wordpress hide Warnings and Notices中,在wp-config.php文件中添加以下代码
ini_set('log_errors','On');
ini_set('display_errors','Off');
ini_set('error_reporting', E_ALL );
define('WP_DEBUG', false);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
答案 7 :(得分:7)
您可以使用error_reporting取消警告,但更好的方法是首先修复您的脚本。
如果您不知道如何操作,请编辑您的问题并向我们显示相关行以及显示的警告。
答案 8 :(得分:5)
我认为更好的解决方案是配置.htaccess这样你就不必改变应用程序的代码。以下是Apache2的指令
php_flag display_startup_errors off
php_flag display_errors off
php_flag html_errors off
php_value docref_root 0
php_value docref_ext 0
答案 9 :(得分:0)
PHP 7.2提供了试用示例。这是从449行开始的php.ini文件中给出的片段。
; Common Values:
; E_ALL (Show all errors, warnings and notices including coding standards.)
; E_ALL & ~E_NOTICE (Show all errors, except for notices)
; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.)
; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors)
; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
; Development Value: E_ALL
; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT
; http://php.net/error-reporting
error_reporting = E_ALL
因此,请阅读并尝试使用它们提供的不同示例。修改后,重新启动服务器并测试方案。
答案 10 :(得分:0)
Error Control Operator已经有答案,但缺乏解释。您可以对每个表达式使用@
运算符,它会隐藏错误(致命错误除外)。
@$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();
}
答案 11 :(得分:0)
要忽略所有警告,请在代码顶部使用以下示例:
error_reporting(0);