0
我無法動態實例化PHP中的類以在我的文件命名空間中工作。 PHP似乎完全不知道我的文件上的use
關鍵字,因爲我嘗試基於變量的值動態地實例化類。PHP:Instanciating命名空間類
有沒有一個很好的解決方案,除了硬編碼命名空間動態實例化類時?
下面是一些快速的樣本,以說明我的意思:
代碼new two('one')
;在結果類一個也沒有找到與以下兩個文件被包括:
文件1:
namespace uno;
use dos;
class one {
function __construct($what) {
new $what;
}
}
文件2:
namespace dos;
class two { }
文件3:
new one('two'); // Doesn't work!
嗨!我沒有使用一個級別的命名空間,但爲了在這裏簡化以獲得一些答案而不讓所有人都感到困惑,我決定在我的示例中跳過它們 – Industrial
無關緊要:它沒有什麼意義,級別的命名空間;)使用更深的命名空間更有意義'使用path \ to \ myNamespace; new myNamespace \ foo \ BarClass;'請注意'new'後面的標識符是如何從'use'語句的命名空間的最後部分開始的。 – KingCrunch
從我的觀點來看問題是PHP忽略了我的動態實例化類的'use'關鍵字,即。 '新$什麼'。任何想法呢? – Industrial