2012-01-02 82 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')); 
相关问题