来自字符串的PHP函数参数

时间:2011-05-20 17:39:55

标签: php function parameters eval

如何使用动态参数调用创建真正动态的函数?我发现的文档和示例都假设您只有一个参数。我想有多个参数,例如:

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缺少参数。

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

您需要使用call_user_func_arraystr_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));