0

我有两个文件:

模板.php:

<div><?php echo $myVar; ?></div>

控制器

class MyClass extends Base {
    public function view() {
        $myVar = 'hello world';
        $this->loadTemplate('main');
    }
}
abstract class Base {
    public function loadTemplate($template) {
        require_once("templates/$template.php");
    }
}

但这一定行不通,因为 require 在 loadTemplate 函数的范围内,我怎样才能在 loadTemplate 中返回对 require 函数的调用?我希望使用 $this->loadTemplate() 之类的单个函数将 require 包含在 view() 范围内;并且不使用 require_once($this->getTemplatePath())

任何的想法?

4

2 回答 2

2

你不能。通常,您要做的是通过传递带有变量 ( $this->loadTemplate(array('myVar' => 'hello world'))) 的数组,然后调用extract($vars)loadTemplate方法来完成。

于 2012-07-21T12:18:01.813 回答
2

只需使用类成员来访问视图脚本中的变量

课程

class MyClass extends Base
{
    public function view()
    {
        $this->myVar = 'hello world';
        $this->loadTemplate('main');
    }
}

abstract class Base
{
    public function loadTemplate($template)
    {
        require_once("templates/$template.php");
    }
}

模板main.php

Output: <?= $this->myVar ?>
于 2012-07-21T12:24:00.467 回答