注意:未定义的变量:模板但定义了$ template?

时间:2014-05-03 04:21:53

标签: php

我忙于使用模板引擎,当我尝试加载参数时,会出现此错误:

  

注意:未定义的变量:第21行的C:\ xampp \ htdocs \ global.php中的模板
  致命错误:在第21行的C:\ xampp \ htdocs \ global.php中的非对象上调用成员函数makeCut()

但在发动机本身:

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
include('app/includes/classes/class.db.php');

class template extends DB {
    public $template;
    public $content;
    public $variables = array();

    public function makeCut($name, $value) {
        $this->Cut['{' . $name . '}'] = $value;

    }

    public function getCut($content) {
        $content = str_replace(array_keys($this->param), array_values($this->param), $content);
        return $content;
    }

    public function echoPage() {
        echo $this->getCut($this->content);
    }
}

$template = new template;

(我确实剪了一块)

那么这里发生了什么?

编辑:我的global.php的一些行

    function __autoload($class_name) {
    require_once('app/includes/classes/class.' . $class_name . '.php');
}
require_once('app/includes/languages/lang.' . LANGUAGE . '.php');
// Params
$template->makeCut('slider', "<?php include('sliders/' . $users->slideCheck(); . '.html'); ?>");
?>

1 个答案:

答案 0 :(得分:2)

最有可能的是,您的global.php并未包含定义template类的文件,因此$template在使用前从不实例化。如果需要类,__autoload可以自动加载文件,但如果需要变量,它就不知道加载文件。