我有很多PHP视图文件,我曾经使用简单的包含语句在我的控制器中包含这些文件。他们都使用在视图类中声明的方法,他们像$ view-> method();不过,我最近决定,如果包含也将由这个视图类来完成会更好。但是,这会改变包含文件的范围,以便不再定义$ view。 这里是一个代码示例:PHP为包含文件定义范围
in someViewFile.php (BOTH siuations)
<html>
<head><title><?php echo $view->getAppTitle(); ?></title>
etc.
OLD SITUATION in controller:
$view = new view;
include('someViewFile.php'); //$view is defined in someViewFile.php
NEW SITUATION in controller:
$view = new view;
$view->show('someViewFile'); //$view is not defined in someViewFile.php
现在我在视图类使用这种攻击我的方式解决该问题:
public function show($file){
$view = &$this;
include($file.".php");
}
反正是有申报inluded文件的范围或者是这是解决问题的最好方法吗?
这些例子都是粗略简化的。
我认为有一个小错字,它说“filname”? – noio 2010-10-28 19:38:23
事实上,该成员及其用法是`filname`,其中赋值是`filename`。我试图编辑它,但编辑需要6个字符的变化。 _roll eyes_ – Travis 2013-02-24 20:14:46
固定的错字 - 感谢您指出 – meouw 2013-02-25 09:35:45