我想使用 extract() 函数将控制器中分配的所有变量提取到我的模板中。一个简单的例子是这样的:
private function render() {
extract($this->controller_vars);
require_once("layout.php");
}
问题是在我的 layout.php 中,我正在调用“包含”文件但更重要的是在布局中显示正确的操作/视图的其他方法。
// This method is called where I want to display the "content" page:
public function display_action() {
require_once("selected_action.php");
}
因此,我有效地访问了 layout.php 中提取的变量,但我的视图/操作不能访问,因为它们是通过同一控制器中的方法包含的。
是否有一种解决方法,我可以为提取的变量提供全局访问权限,或者为我的问题提供另一种解决方案?
附加信息:
上面的代码是我的视图类中方法的 2 个“淡化”版本
class views {
private function render() {
extract($this->controller_vars);
require_once("layout.php");
}
public function display_action() {
require_once("selected_action.php");
}
}
在 layout.php 文件中,我会进行如下调用:
<div id="content_area">
$this->display_action();
</div>
更多更多更多
我现在确实可以通过我的视图类中名为 $this->controller_vars 的数组属性访问这些变量,所以如果我分配了一个用户列表,它将存储在 $this->controller_vars['users']; 我只是在寻找一种提取它的方法,以便我可以使用简单的 $users 访问它们,就像 $this->controller_vars['users']