有点奇怪的问题,但请耐心等待。我正在编写一个小型 MVC 框架,主要用于学习目的。当我加载视图时,我只包含视图文件然后使用extract($data);
,这样我就可以在我的视图中使用变量。这是它在我的控制器中的样子:
// Assign view variables and load the views
$data = array('title' => 'testing the framework',
'users' => $this->models['Users']->getAllUsers());
$this->loadViews(array('header', 'home', 'footer'), $data);
它工作得很好,但我突然想到,如果我在项目的其他地方有任何变量被称为$title
or $users
,它们将与我正在执行extract()
的内容冲突。这还没有成为问题,但我觉得我现在需要在它出现之前处理它。
我发现的唯一解决方案是为正在extract()
编辑的变量使用前缀。所以我可以在我的模板中使用它们,<?php echo $tpl_whatever; ?>
而不是<?php echo $whatever; ?>
任何人都可以提供一些建议吗?也许我可以限制变量范围?
谢谢!