2012-01-02 110 views
2

我得到這個錯誤,當我嘗試調用$func('something')功能名稱必須是一個字符串

if(($object instanceof MyObject) && (method_exists($object, 'foo'))){ 
    $func = array(&$object, 'foo'); 

}else{ 
    $func = 'fallback_foo'; 
} 

... 

echo $func('something'); 

這有什麼錯我的代碼?

很明顯,我不能使$ func成爲一個字符串,因爲它是一個特定於對象的方法...... 但是具有方法名稱和對象的數組應該工作正確嗎?

+0

什麼是'$ FUNC( '東西')'該怎麼辦? – Blender 2012-01-02 02:52:34

+0

以及它應該運行的功能/方法:) – Alex 2012-01-02 02:53:04

+0

我不認爲,你想要達到的事情是可能的這種方式 – xXx 2012-01-02 03:30:34

回答

3

使用call_user_func()call_user_func_array()。兩者都支持正則函數和方法調用:

echo call_user_func($func, 'something'); 
echo call_user_func_array($func, array('something')); 
相關問題