【发布时间】:2012-01-17 13:51:54
【问题描述】:
我被一些 ABSTRACTION & ORGANIZATION 错误所困扰,我决定使用一个名为 Loader 的类在我的 php 应用程序中包含文件,看起来像这样
class Loader
{
public $loadedFiles=array();
public function isLoaded($fileName)
{
if(in_array($fileName,$this->loadedFiles))
return true;
else
return false;
}
public function load()
{
$fileList=func_get_args();
foreach ($fileList as $file)
{
if(!$this->isLoaded($file))
{
$flag=include(ROOT_DIR_PATH.'includes'.DS.$file);
if($flag)
{
$this->loadedFiles[]=$file;
}
else
return false;
}
}
}
}
现在我可以使用类似的方法在我的应用中包含文件
$loader=new Loader();
$loader->load('db.class.php','utility.php','objects.php');
但问题是现在上述方法包含的文件的所有功能都被授予上述方法load的范围。现在我不能使用包含文件的任何功能。每当我使用上述包含文件的任何功能时,我都会收到一条警告说undefined function。有什么方法可以将全局范围授予包含文件的功能。
【问题讨论】:
-
是路径 $flag=include(ROOT_DIR_PATH.'includes'.DS.$file);对吗?