当我尝试拨打$func('something')
时,我收到此错误:
if(($object instanceof MyObject) && (method_exists($object, 'foo'))){
$func = array(&$object, 'foo');
}else{
$func = 'fallback_foo';
}
...
echo $func('something');
我的代码出了什么问题?
显然我不能将$ func作为一个字符串,因为它是一个特定于对象的方法... 但是一个方法名称和对象的数组应该可以正常工作吗?
答案 0 :(得分:3)
使用call_user_func()
或call_user_func_array()
。两者都支持常规函数和方法调用:
echo call_user_func($func, 'something');
echo call_user_func_array($func, array('something'));