我有两个文件:
的template.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-&gt; loadTemplate();)将require包含在view()范围内。而不是使用require_once($ this-&gt; getTemplatePath())
任何想法?
答案 0 :(得分:2)
你做不到。通常,您尝试执行的操作是通过传递包含变量的数组($this->loadTemplate(array('myVar' => 'hello world'))
),然后在extract($vars)
方法中调用loadTemplate
来完成的。
答案 1 :(得分:2)
只需使用类成员来访问viewscript中的变量
<强>类强>
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 ?>