2012-08-25 27 views
0
function fatal_error_handler() { 
    if ($error = error_get_last()) { 

     switch ($error['type']) { 
      case E_ERROR: 
       $code = 'FATAL ERROR'; 
       break; 
      case E_CORE_ERROR: 
       $code = 'CORE ERROR'; 
       break; 
      case E_CORE_WARNING: 
       $code = 'CORE WARNING'; 
       break; 
      default: 
       $code = 'UNKNOWN FATAL ERROR'; 
     } 

     echo 'An error occurred (Test 1): ' . $code . '<br />'; 
    } 

    echo 'An error occurred (Test 2): ' . $code . '<br />'; 
} 

register_shutdown_function('fatal_error_handler'); 

我目前正在使用register_shutdown_function编写一个致命错误处理程序。只是想知道,register_shutdown_function应该自动运行/执行吗?我一直在测试上面这段代码。我故意将第二个echo语句放在第二个echo语句中,看它是否自动运行,并且实际上打印出第二个echo语句(由于没有致命错误,因此第一个echo语句未打印)。PHP - register_shutdown_function自动执行?

+0

是的,这个函数会在关机时自动运行。 – Sammaye

回答

2

正如其他说明,这将在关机时运行与否脚本正常结束或异常是由于一个错误,因为你你正在使用这个错误处理,它是有点有用实现。

你甚至可以拥有以前创建的所有对象,如静态类等,它可以输出到浏览器。