一些简单的错误处理函数(一)在之前的文章中,我们了解过了 PHP 中的异常和错误的区别,也简单地介绍了一些 PHP 中的错误处理函数。这次,我们再开两篇文章,详细的介绍一些 PHP 中错误处理相关的函数。想了解错误和异常相关内容的,请移步: error_reporting()这个函数相必大家多少都会接触过,就是定义 PHP 在运行时的错误处理机制。就像我们在进行调试时,往往需要设置一个 E_ALL 来显示全部的错误信息。 error_reporting(E_ALL); 这个函数只能定义为 PHP 内部提供的那些错误处理的常量,包括:
当然,这个函数也是可以通过 php.ini 文件进行全局配置的,具体的配置方式这里不再赘述。包括 php.ini 文件的注释中也会有详细的说明。 error_get_last()error_get_last() 函数则是指的返回我们最后一次的错误信息。它返回的是一个数组,里面会包含错误信息的"type"、"message"、"file"、"line"信息,方便我们查看错误的具体发生位置及内容。 echo $a; // Notice: Undefined variable: a 需要注意的是,它只返回最后一个错误的信息。比如上面示例中最后一段中的 echo $a; 和 echo $b; 都会产生错误,但最终打印出来的只是 echo $b; 所产生的错误信息。 error_clear_last从名字就可以看出,这个函数的作用是清除最后一次的错误信息。也就是说,如果在发生错误的代码之后调用了这个函数, error_get_last() 就不会打印任何内容了。 echo $a; // Notice: Undefined variable: a error_log最后我们来看看错误日志记录的一个函数。它不仅可以将日志记录到日志文件中,还可以直接发邮件。 error_log("Test Error One!"); 第一段我们只有一个参数,所以错误信息将直接记录到 php.ini 文件中所定义的错误日志中。而后面两段则是将内容发送到一个邮箱中。 这个函数的声明形式是: error_log ( string $message [, int $message_type = 0 [, string $destination [, string $extra_headers ]]] ) : bool
这个函数需要注意的一点是, $message 内容不能有 null 或者其他可能截断字符的符号。所以我们的测试代码中,发送 error_get_last() 内容时我们不仅给他转成了 json ,而且还加了一层 base64 编码,这样才能保证内容的正常发送。 总结这篇文章主要就是介绍了这几个针对错误情况发生时的处理函数。比较有惊喜的是 error_log() 这个函数,它不需要过多的配置,直接就可能通过 PHP 自带的 mail 进行邮件发送。或许在我们的生产环境中可以尝试用来来进行一些错误的监听跟踪哦!! 测试代码: https://github.com/zhangyue0503/dev-blog/blob/master/php/202004/source/%E4%B8%80%E4%BA%9B%E7%AE%80%E5%8D%95%E7%9A%84%E9%94%99%E8%AF%AF%E5%A4%84%E7%90%86%E5%87%BD%E6%95%B0%EF%BC%88%E4%B8%80%EF%BC%89.php 参考文档: https://www./manual/zh/function.error-reporting.phphttps://www./manual/zh/function.error-get-last.phphttps://www./manual/zh/function.error-clear-last.phphttps://www./manual/zh/function.error-log.php |
|