错误处理
在实际开发过程中,不可避免的会出现各种各样的错误,为了提高开发效率,PHP语言提供了显示错误的机制,该机制可以控制是否显示错误以及显示错误的级别等。一般情况下,可以通过两种方法查看程序运行的错误信息,一种方法是直接输出到浏览器中,另外一种方法是记录在日志文件中。下面分别进行讲解。
1. 在浏览器中显示错误信息
PHP提供了控制错误报告显示和关闭的两种方式。
(1)通过修改配置文件来显示错误报告,代码如下所示。
error_reporting = E_ALL
display_errors = On
在上述代码中,error_reporting用于设置报告的错误级别,display_errors用于设置是否显示错误信息。
(2)通过PHP提供的error_reporting()函数和ini_set()函数来实现显示错误报告,具体代码如下。
error_reporting(E_ALL);
ini_set('display_errors', 1)
在上述代码中,ini_set()函数用来设置php.ini中指定选项的值,仅在本脚本周期内有效;error_reporting()函数用于设置错误级别。另外,若要获取php.ini中的指定选项值,也可以使用ini_set()函数来获取。
2. 记录错误日志
在前面的学习中,学习了如何让程序的错误信息直接输出在浏览器中,但是如果网站已经上线,错误显示出来会影响用户体验,这时就需要将这些错误记录下来,为后期解决这些错误提供帮助。
在PHP语言中可以通过配置文件来记录错误日志信息,也可以通过error_log()函数来记录错误日志信息,接下来针对这两种方式进行详细讲解。
(1)通过修改php.ini配置文件,可以直接设置记录错误日志的相关配置项,示例代码如下。
error_reporting = E_ALL;
log_error = On
error_log = C:\web\php_errors.log
在上述代码中,error_reporting用于设置错误级别,E_ALL表示显示所有错误,log_error用于设置是否记录日志,error_log用于指定日志写入的文件路径。
(2)error_log()函数用于将错误记录到指定的日志文件中,示例代码如下。
// 将错误信息发送到php.ini中的error_log配置的日志中
error_log('error message a');
// 将错误信息发送到指定的日志文件中
error_log('error message b', 3, 'C:/web/php.log');
在上述代码中,error_log()函数的第2个参数用于指定将错误信息发送到何处,当省略时默认为php.ini中的error_log配置的日志中,此处设置为3,表示发送到指定的日志文件中。函数的第3个参数的设置取决于第2个参数,此处表示日志文件的路径。