Home  >  Article  >  Backend Development  >  smarty加载出现有关问题

smarty加载出现有关问题

WBOY
WBOYOriginal
2016-06-13 13:12:13753browse

smarty加载出现问题
init.inc.php

PHP code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
define ( '__ROOT__', str_replace ( '\\', '/', dirname ( __FILE__ ) ) );
include 'Ext/Smarty.class.php';
class Tpl extends Smarty {
    function __construct() {
        $this->setTemplateDir ( __ROOT__."/View" );
        $this->setCompileDir (__ROOT__."./comp_c" );
        $this->left_delimiter = "right_delimiter = "}>";
        parent::__construct();
    }
}



index.php

PHP code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
include 'init.inc.php';
class Index extends Tpl {
    function index(){
        $this->assign('m','asdfasdfasdf');
        
        $this->display('index.html');
    }
}
$tpl = new Index();
$tpl->index();



用的Smarty-3.1.11版本 报错信息是:
PHP code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
Fatal error: Call to a member function createTemplate() on a non-object in D:\AppServ\www\smarty\Ext\sysplugins\smarty_internal_templatebase.php on line 47



只是我用普通的方法就不会出现问题 比如: 

PHP code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
$smarty = new Smarty();
$smarty->setTemplateDir ( __ROOT__ . "/View" );
$smarty->setCompileDir ( __ROOT__ . "/comp_c" );
$smarty -> left_delimiter=" right_delimiter="}>";

include "init.inc.php";
$smarty->display("demo.tpl");



找了一天都没有解决,不知道哪里出现问题 求帮忙…

------解决方案--------------------
你 print_r($this->Smarty); 看看
应该是没有实例化成功,即 $this->Smarty 不是 Smarty 对象
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn