📅  最后修改于: 2020-09-29 07:25:12             🧑  作者: Mango
一个PHP应用程序在脚本运行时会生成多个级别的错误和警告。PHP提供了四种显示这些错误和警告的方法,下面列出了这些方法:
下面提供了几行代码,请将其添加到您的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文件中进行以下更改,以显示所有错误,包括解析错误,然后在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. |