我有一个包含加载视图的方法的类。这工作完美,页面加载正确!我遇到的问题是我似乎无法找到将变量传递给我的方法当前尝试加载的视图的方法。如何将变量传递给页面?有没有办法可以操纵我当前的代码来完成这项工作?还是我会朝着完全相反的方向前进?
控制器类:
<?php
class Controller {
private $args = array();
public function view($page, $args = null) {
if ($args !== null) {
$this->args = $args;
extract($this->args);
}
$page = VIEWS . $page . '.php';
$template = $this->getTemplate($page);
echo $template;
}
private function getTemplate($file) {
ob_start();
include($file);
$template = ob_get_contents();
ob_end_clean();
return $template;
}
}
?>
控制器:
<?php
class Page extends Controller {
public function person($age) {
$data['age'] = $age;
$this->view('person', $data);
}
}
?>
查看内容:
</h1>My name is Dennis. My age is: <?php echo $age; ?></h1>
最终结果是一个未定义的变量 ($age)。