ビューをロードするメソッドを含むクラスがあります。これは完璧に機能し、ページは正しく読み込まれます! 私が抱えている問題は、メソッドが現在読み込もうとしているビューに変数を渡す方法がわからないことです。ページに変数を渡すにはどうすればよいですか? 現在のコードを操作してこれを機能させる方法はありますか? それとも、まったく逆の方向に進んでいますか?
コントローラ クラス:
<?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) です。