📜  PHP中显示所有错误

📅  最后修改于: 2020-09-29 07:25:12             🧑  作者: Mango

如何显示PHP中的所有错误?

一个PHP应用程序在脚本运行时会生成多个级别的错误和警告。PHP提供了四种显示这些错误和警告的方法,下面列出了这些方法:

  • error_reporting:显示除E-NOTICE,E-STRICT和E_DEPRECATED级别错误以外的所有级别错误。
  • display_errors:默认情况下,display_errors的值为off 。将其设置为on可以显示所有错误,包括解析(语法)错误。
  • log_errors:log_errors的默认值为ON ,它指示是否应该记录错误。
  • error_log 字符串: error_log 字符串设置应在其中记录脚本错误的文件名。

下面提供了几行代码,请将其添加到您的PHP文件中以显示错误。这是显示所有PHP错误和警告的最快方法。

ini_set ('display_errors', 1);
ini_set ('display_startup_errors', 1);
error_reporting (E_ALL);

以上函数和指令的工作如下:

ini_set()

此函数尝试覆盖php.ini文件中的配置。

display_errors

display_errors是一个指令,用于确定错误是显示给用户还是隐藏。它不处理PHP启动过程中发生的错误。

display_startup_errors

display_startup_errors也是一个伪指令,用于在PHP启动过程中查找错误。

error_reporting()

error_reporting是PHP的本机函数。用于显示错误。

程序


输出量

输出将显示给浏览器警告。

Warning: include(jtp.php): failed to open stream: No such file or directory in C:\xampp\htdocs\program\phperror.php on line 6

Warning: include(): Failed opening 'jtp.php' for inclusion (include_path='C:\xampp\php\PEAR') in C:\xampp\htdocs\program\phperror.php on line 6

注意:这两个指令display_errors和display_startup_errors均无法显示解析错误。因此,必须修改PHP.ini配置。

配置PHP.ini以显示所有错误和警告

必须在php.ini文件中进行以下更改,以显示所有错误,包括解析错误,然后在xampp中重新启动apache服务器。

display_errors = on

在PHP.ini文件中将display_errors指令设置为“on”。它将显示所有错误,仅通过调用ini_set()函数无法显示,例如-语法和解析错误

程序

当在php.ini文件中禁用display_errors或将其设置为off时的PHP程序。

= 0 $i--) {
echo "It will generate parse error";
}
?>

输出量

禁用display_errors指令后,输出将显示为浏览器,如以下屏幕截图所示。

输出:

在php.ini文件中启用display_errors或将其设置为on时,上述程序的输出,并重新启动服务器。

错误报告级别

正如我们已经讨论过的,PHP会产生不同级别的错误。因此,让我们了解一下PHP代码中会产生什么样的错误。

Constant Description
E_ERROR Fatal runtime error. The execution of the script has been stopped.
E_WARNING Non-fatal runtime error. The execution of the script does not stop.
E_PARSE Compile-time error, which is generated by the parser.
E_NOTICE It is a runtime notice. The PHP script found something that could be an error.
E_USER_ERROR E_USER_ERROR is similar to the E_ERROR, but it is produced by the PHP script using the trigger_error() function. It is a fatal user-generated error message.
E_USER_WARNING E_USER_WARNING is a non-fatal user-generated warning, and it is similar to the E_WARNING. But it is also generated by the PHP script using trigger_error() function.
E_USER_NOTICE It is a user-generated notice, similar to the E_NOTICE.
E_STRICT It is not strictly an error. It became part of E_ALL after PHP version 5.4.0.
E_ALL Enables all errors and warnings as well.