如何使用动态参数调用创建真正动态的函数?我发现的文档和示例都假设您只有一个参数。我想有多个参数,例如:
class Object {
function A($p1) {}
function B($p1,$p2) {}
}
$obj = new Object();
$function = "B";
$params = "'foo', 'me'";
$obj->$function($params);
调用$function = "A"
会很好,因为$ params被视为一个字符串。我试过了
$obj->$function(explode(',',$params));
对于$function="B"
但它不起作用,因为爆炸只是返回
数组,因此函数B缺少参数。
有什么想法吗?
答案 0 :(得分:3)
您需要使用call_user_func_array
和str_getcsv
call_user_func_array(array($obj, "B"), str_getcsv($params));
答案 1 :(得分:1)
您可以使用call_user_func_array()
功能,如下所示:
call_user_func_array(array($obj, $function), explode(',', $params));