2013-05-30 90 views
1

我有一個靜態方法返回完全名稱間隔的類標識符。我想能夠調用說類的靜態方法在一個班輪像這樣:解決多個靜態方法調用

static::CLASSES('\name\spaced\Foo')::bar(); 

我想我有某種形式的一些解析問題。我一直玩{},但無法啓動它的工作。

如果可能的話,我不想做以下(工作):

$foo = static::CLASSES('\name\spaced\Foo'); 
$foo::bar(); 

回答

1

我想你在找什麼是static::CLASSES('\name\spaced\Foo')->bar();

如果第一個表達式返回一個實例,然後你要調用一個實例方法

UPDATE

現在,我第一次的ThOD返回一個類名,而不是一個實例方法,我相信

call_user_func(array(static::CLASSES('\name\spaced\Foo'), "bar")); 

或參數

call_user_func_array(array(static::CLASSES('\name\spaced\Foo'), "bar"), $paramArray); 

可以告訴你一些愛

+0

我看到你說的話。謝謝。我需要這是一個靜態的電話。我改變了它,使'static :: CLASSES('\ name \ spaced \ Foo')'現在返回完全命名空間的類名,但static :: CLASSES('\ name \ spaced \ Foo'):: bar()仍然給我一個編譯器錯誤。 – DudeOnRock

+0

更新了回答,以顯示call_user_func_array的靜態方法形式的用法。 – Orangepill