PHP 错误报告
error_reporting()是一个PHP的预定义函数。它允许您控制报告多少个和哪些PHP错误。正如我们已经讨论过的,PHP有几个级别的错误。使用error_reporting()函数可以为当前脚本设置错误级别。
php.ini文件有一个error_reporting指令,将在运行时由此函数设置。
语法
error_reporting (int $level)
错误报告函数error_reporting()的 $level 参数是可选的。如果未设置级别,此函数将返回当前的错误报告级别。
$level(可选)
此参数指定当前脚本的错误报告级别。
返回值
如果未给出级别参数,它将返回当前级别。否则,它将恢复到旧的错误报告级别。
变更
版本 | 描述 |
---|---|
PHP 5.4 | E_STRICT已成为E_ALL的一部分。 |
PHP 5.3 | 在PHP 5.3中新增了E_DEPRECATED和E_USER_DEPRECATED。 |
PHP 5.2 | 在PHP 5.2中添加了E_RECOVERABLE_ERROR。 |
PHP 5.0 | 在PHP 5.0中引入了E_STRICT。 |
示例
通过PHP程序的帮助,可以指定不同级别的错误报告:
<?
// Turn off all error reporting
error_reporting(0);
// Report all PHP errors
error_reporting(E_ALL);
// Report all PHP errors
error_reporting(-1);
// Report all errors except E_NOTICE
error_reporting(E_ALL & ~E_NOTICE);
// Report simple running errors
error_reporting(E_WARNING | E_ERROR | E_PARSE);
// E_NOTICE is also good to report uninitialized variables
error_reporting( E_WARNING |E_ERROR | E_PARSE | E_NOTICE);
// It is same as error_reporting(E_ALL);
ini_set('error_reporting', E_LL);
?>
error_reporting()的重要要点
- 通过将零(0)传递给error_reporting函数,可以移除所有的错误、警告、通知和解析信息。最好的方法是在.htaccess或ini文件中关闭报告信息,而不是在每个PHP文件中使用这段代码。
error_reporting(0);
- PHP允许开发人员使用未声明的变量。但是当这些未声明的变量在条件和循环中使用时,可能会导致应用程序出现问题。 有时,在条件或循环中声明并使用的变量的拼写可能不同。因此,为了在Web应用程序中显示未声明的变量,请在error_reporting函数中传递E_NOTICE。
error_reporting(E_NOTICE);
- error_reporting()函数允许显示用户想要的特定错误。使用~字符,您可以过滤错误。例如 – ~E_NOTICE表示不显示通知。在下面的代码行中,除了E_NOTICE之外,将显示所有错误。
error_reporting(E_ALL & ~E_NOTICE)
- 下面是给出的三行代码,它的作用与
error_reporting(E_ALL)
相同,这意味着它也会显示所有的PHP错误。error_reporting(E_ALL)
是最常用的显示错误的方法,因为它易于阅读和理解。
error_reporting(-1);
error_reporting(E_ALL)
ini_set('error_reporting', E_ALL);