嗯,我不知道這個帖子是否有正確的標題。隨意改變它。如何包含一個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