Параметры функции PHP из строки - PullRequest
1 голос
/ 20 мая 2011

Как мне создать действительно динамическую функцию с вызовом динамических параметров?Документация и примеры, которые я нашел, предполагают, что у вас есть только 1 параметр.Я хотел бы иметь несколько параметров, например:

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 ]

3 голосов
/ 20 мая 2011

Вам нужно будет использовать call_user_func_array и str_getcsv

call_user_func_array(array($obj, "B"), str_getcsv($params));
1 голос
/ 20 мая 2011

Вы можете использовать функцию call_user_func_array() следующим образом:

call_user_func_array(array($obj, $function), explode(',', $params));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...