set_error_handler
用于设置用户定义的错误处理函数,用于处理运行时发生的错误。
当 PHP 运行时发生错误时(例如 E_NOTICE、E_WARNING 等),会调用用户定义的错误处理函数进行处理。
可以通过此函数自定义如何处理 PHP 运行时错误,例如将错误记录到日志文件、发送邮件通知等。
错误处理函数的签名应该是 function error_handler($errno, $errstr, $errfile, $errline)。
当 PHP 发生一个错误时,无论该错误是否符合 error_reporting
设置的级别,都会调用用户定义的错误处理函数来处理错误。
这意味着,即使禁用了所有错误报告(error_reporting(0)
),通过 set_error_handler
设置的自定义错误处理函数仍然能够捕获到 PHP 运行时产生的错误,并对其进行处理。
set_exception_handler
用于设置用户定义的异常处理函数,用于处理未捕获的异常。
当 PHP 程序中未被 try-catch 块捕获的异常抛出时,会调用用户定义的异常处理函数进行处理。
可以通过此函数自定义如何处理未捕获的异常,例如将异常信息记录到日志文件、显示自定义错误页面等。
异常处理函数的签名应该是 function exception_handler($exception),其中 $exception 是抛出的异常对象。
register_shutdown_function
用于注册一个函数,在 PHP 运行结束或达到最大执行时间时被调用。
这个函数用于处理在脚本执行期间未被捕获的致命错误,例如内存耗尽或无限递归。
与 set_error_handler 和 set_exception_handler 不同,它不是用来处理特定类型的错误或异常,而是用来处理脚本执行结束时的一般清理工作或记录脚本运行时的情况。
注册的函数在脚本结束时会被调用,不接受参数,因此你无法获取错误信息或异常信息。
set_error_handler
用于处理运行时发生的错误。set_exception_handler
用于处理未被捕获的异常。register_shutdown_function
用于注册一个在脚本执行结束时被调用的函数,通常用于执行一般的清理工作。