设定错误和异常处理的三个函数(第一篇)
三个函数分别为register_shutdown_function()、set_error_handler()、set_execption_handler(),以下分别做解释:
register_shutdown_down()
解释:当程序脚本执行完毕、运行超时、或者意外死掉导致php执行关闭的时,该函数会被调用
执行机制:php把要调用的函数注入内存,当页面所有的php语句执行完毕的时,调用该函数,特别注意的是,在这个时候是从内存中调用,从PHP页面中调用。
案例一:不带参数,执行无错误
<?php register_shutdown_function(array('Shutdown','fun1')); class Shutdown{ public static function fun1(){ echo "register_shutdown_function回调成功"; } } //执行结果:register_shutdown_function回调成功
//案例一注意事项:fun1方法为静态方法(static)
?>
案例二:带参数,执行无错误
<?php
//PHP4后支持注册函数参数传递 register_shutdown_function('fun2','参数1','参数2'); function fun2($param1,$param2){ echo "fun2调用成功,参数分别为:".$param1.'---'.$param2; } //执行结果:fun2调用成功,参数分别为:参数1---参数2 ?>
案例三:不带参数,执行有错误
<?php function shutdown_func(){ die("not a clean shutdown"); } register_shutdown_function("shutdown_func"); $a = new FooClass(); // 将因为致命错误而失败 //执行结果:Fatal error: Class 'FooClass' not found in D:\web\m_study\a.php on line 6
//not a clean shutdown
?>