PHP中显示所有错误
如何显示PHP中的所有错误? 一个PHP应用程序在脚本运行时会生成多个级别的错误和警告。PHP提供了四种显示这…
如何显示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的本机函数。用于显示错误。
程序
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
//include a php file which does not exist
include("jtp.php");
?>
输出量
输出将显示给浏览器警告。
Warning: include(jtp.php): failed to open stream: No such file or directory in C:xampphtdocsprogramphperror.php on line 6 Warning: include(): Failed opening 'jtp.php' for inclusion (include_path='C:xamppphpPEAR') in C:xampphtdocsprogramphperror.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程序。
<?php //semicolon is missing, which generates parse error in php code for ($i = 5; $i >= 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. |
本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。
还没有任何评论,赶紧来占个楼吧!