嗯,我不知道这个帖子是否有正确的标题。随意改变它。如何包含一个PHP,然后删除它?
好吧,这是我的情景:
pluginA.php
function info(){
return "Plugin A";
}
pluginB.php
function info(){
return "Plugin B";
}
最后,我有一个负责一个插件管理器导入所有插件信息到池阵列:
Manager.php
class Manager
{
protected $pool;
public function loadPluginsInfo()
{
$plugin_names = array("pluginA.php", "pluginB.php");
foreach ($plugin_names as $name)
{
include_once $name;
$this->pool[] = info();
}
}
}
的这里的问题是,当我打印池阵列只让我上加载的第一个插件的信息。我认为文件包含覆盖信息,因为它仍然从第一个包含调用info()方法。
有没有一种方法可以包含具有所有插件文件的相同名称的info()函数的插件的信息?
预先感谢您
PS:致命不能重新声明错误从未投掷
为什么不在pluginA.php中创建类'PluginA'?所以你可以访问信息方法'PluginA :: Info();'(这是OOP) – David 2012-07-12 21:29:32
我有这个选项,但我不知道如何动态地通过这种方式动态类,因为我只能得到插件文件名 – manix 2012-07-12 21:31:44
你会试图重新定义PHP不允许的'info()'函数。所以只有'info()'的FIRST实例才会被定义(插件A),其余部分将被忽略。 – 2012-07-12 21:33:05