Php 错误获取最后一个函数中的缓存错误?

Php 错误获取最后一个函数中的缓存错误?,php,Php,我正在检查一个开源web应用程序。有一个问题是,它使用了error\u get\u 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(); 它让我恼火,因为它似乎缓存了旧代码的旧错误,

我正在检查一个开源web应用程序。有一个问题是,它使用了error\u get\u 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();
它让我恼火,因为它似乎缓存了旧代码的旧错误,但是编辑的代码没有任何错误。因此,它会在一段时间内显示旧错误。有人知道如何解决这个问题吗?谢谢你的帮助

编辑:我显示函数uu 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

函数
error\u get\u last
不缓存任何内容,它只是一个类似于
substr
和所有其他函数的函数。如果您看到的似乎是缓存的,则缓存发生在不同的位置。可能您编辑了错误的文件(或者您没有真正修复错误),有操作码或输出缓存或其他

它是流行的开源web应用程序吗?我们能知道开放源码的名称吗?@Zerkms:如果我编辑了代码,它生成了一些错误,我修复了这些错误,但仍然出现了这些错误。@Singh:projectpier.org/@coolkid:那么它们显然在那里。@zerkm:在显示的错误中,它显示了旧代码的错误。请您安装ProjectPier并通过添加一些无效代码来测试它以查看错误,然后删除无效代码以返回稳定版本,然后您还会看到错误吗?我不需要安装它
error\u get\u last
是一个内置的PHP函数,用于报告发生的最后一个错误。如果您修复了代码,以便在处理请求期间不会发生错误,则此函数将返回NULL。手册没有撒谎。这是否意味着最后一个PHP脚本的最后一个错误?因此,我们不能使用此方法来获取脚本末尾运行PHP脚本的错误,对吗?因为它可能会返回开发环境中旧代码的旧错误,对吗?不,解释器不知道它执行的最后一个脚本的任何信息,甚至不知道它是哪一个。在这个术语中,PHP和HTTP一样是无状态的。如果您得到与上次相同的错误,尽管此错误肯定已修复,但您得到的是页面的缓存版本。此缓存页面可能来自输出缓存,也可能由缓存的操作码生成。您应该自己尝试,您将看到错误\u get\u last返回PHP intepreter的最后一个错误。这意味着此错误可能属于生成此错误的最后一个脚本