error_get_last函数中的缓存错误?

时间:2011-02-08 05:18:11

标签: php

我正在检查一个开源Web应用程序。有一个问题是它使用了error_get_last函数,就像在这段代码中一样

$last_error = error_get_last();
if($last_error['type'] === E_ERROR || $last_error['type'] === E_PARSE) {
  include 'error.php';
}
if (ob_get_length()) ob_end_flush();

它让我很烦,因为它似乎缓存旧代码的旧错误,但编辑后的代码没有任何错误。因此它会暂时显示旧错误。有谁知道如何解决这个问题?谢谢你的帮助

编辑:我显示了代码在请求结束时运行的函数__shutdown()

function __shutdown() {
    $logger_session = Logger::getSession();
    if (($logger_session instanceof Logger_Session) && !$logger_session->isEmpty()) {
      Logger::saveSession();
    } // if
    $last_error = error_get_last();
    if($last_error['type'] === E_ERROR || $last_error['type'] === E_PARSE) {
      include 'error.php';
    }
    if (ob_get_length()) ob_end_flush();
  } // __shutdown

1 个答案:

答案 0 :(得分:1)

函数error_get_last不会缓存任何内容,它只是像substr这样的函数以及所有其他函数。如果您看到的内容似乎被缓存,则缓存发生在不同的地方。也许你正在编辑错误的文件(或者你没有真正修复错误),有一个操作码或输出缓存或其他什么。