我在我的博客中使用了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完成呈现页面时,会出现错误,并使用所有控制方法。
如何追踪此问题的出现位置?
答案 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->输出)。