PHP致命错误:调用成员函数append_output()

时间:2014-05-07 08:11:10

标签: php codeigniter

我在我的博客中使用了codeigniter,并且有一段时间我得到了这个错误

  

PHP致命错误:在第862行的/var/www/site/blog/system/core/Loader.php中的非对象上调用成员函数append_output()

我不知道是什么原因造成的,以及它出现的原因。该网站被渲染并完全发送到浏览器,从视图header.php,index.php到footer.php,一切都在那里,然后出现这个错误。使用谷歌搜索显示另一个网站,在其网站的最底部出现此错误...

我现在用error_reporting(0)来解决错误,因为整个网站工作正常,但这不是我想要留下来的解决方案。

它发生在所有页面上,我有一个Controler(blog.php)和几个方法,如index(),article(),archive()。这些方法可以执行它们应该执行的操作,但是当CI完成呈现页面时,会出现错误,并使用所有控制方法。

如何追踪此问题的出现位置?

2 个答案:

答案 0 :(得分:2)

https://github.com/EllisLab/CodeIgniter/blob/develop/system/core/Loader.php#L938 如果从get_instance返回的值发生错误,这将是您的问题。虽然您可能需要查看用于获取正确行号的版本。

此外: https://github.com/EllisLab/CodeIgniter/blob/develop/system/core/Controller.php#L75

这似乎是函数导致的单例类,它返回在构造函数中创建的self::$instance

对我来说,这意味着CI_Controller单例在发生错误时尚未实例化。

希望能帮助您调试问题。

答案 1 :(得分:1)

我遇到了同样的问题。我在控制器中覆盖了输出类($ this->输出)。