为什么我会收到一份精明的通知;试图在第348行的…\sysplugins\smarty_internal_templatecompilerbase.php中获取非对象的属性;?

为什么我会收到一份精明的通知;试图在第348行的…\sysplugins\smarty_internal_templatecompilerbase.php中获取非对象的属性;?,php,smarty,notice,Php,Smarty,Notice,我根据smarty手册创建了我的$smarty对象,并收到以下通知: Notice: Trying to get property of non-object in ...\smarty-3.1.32\libs\sysplugins\smarty_internal_templatecompilerbase.php on line 348 这意味着什么?我如何避免它?当您扩展Smarty类,但从新构造函数不调用父构造函数时,会出现此错误消息。在孩子的课堂上做这样的事情: class Smarty

我根据smarty手册创建了我的
$smarty
对象,并收到以下通知:

Notice: Trying to get property of non-object in ...\smarty-3.1.32\libs\sysplugins\smarty_internal_templatecompilerbase.php on line 348

这意味着什么?我如何避免它?

当您扩展Smarty类,但从新构造函数不调用父构造函数时,会出现此错误消息。在孩子的课堂上做这样的事情:

class SmartyExtend extends Smarty {
    function __construct() {
        parent::__construct();  // this is the line that was missing
        $this->setTemplateDir(...);
        $this->setCompileDir(...);
    }
}

将第348行代码添加到您的问题中。@MonkeyZeus在引用行中的位置并没有真正起到帮助作用。请参阅下面的我的回答,当父构造函数未初始化对象时,将显示错误消息。打电话给构造器,解决了问题。怎么会有人猜到呢<代码>注意:尝试获取非对象的属性非常通用且易于实现。看到错误所抱怨的行号是正确调试某些东西的起点,因此,如果没有它,你最好的希望就是人们浪费时间和猜测,但我很高兴你偶然发现了你的答案。当我看到错误消息时,我开始用谷歌搜索错误消息。我没有发现结果,所以我开始自己想办法。当我得到它的时候,我想让下一个人的生活变得轻松,并在这里提出了一个自我回答的问题。如果有人有相同的错误信息,那么他们可以在这里找到答案。当我问这个问题时,我确实知道答案,我不希望有人能帮我弄明白。