2012-05-14 7 views
1

Я пытаюсь передать массив методу, и я хочу, чтобы метод использовал значения массива в качестве аргументов.Как передать массив аргументов методу

Отправленный аналогичный вопрос на How to assign arrays to functions arguments? нить, но я на самом деле работаю над методом класса здесь.

if (method_exists($testInstance, $method)){ 
    $a=array {'1'=>'aru1', '2'=>'arg2'} //could have more than 2. it's dynamic 
    call_user_func_array($testInstance->$method(), $a); //this won't work. 
} 

Любые мысли? Спасибо большое!

+0

возможно дубликат [Как назначить массивы аргументов функций?] (http://stackoverflow.com/questions/10576318/how-to-assign-arrays-to-functions-arguments) –

+2

Mmmh ... вы считали, что читаете документацию (второй пример)? http://php.net/manual/en/function.call-user-func-array.php ... также полезно следить за дальнейшими ссылками, читать о 'callbable': http://www.php.net /manual/en/language.types.callable.php –

+0

Возможный дубликат [Передача массива в качестве аргументов, а не массива, в PHP) (http://stackoverflow.com/questions/744145/passing-an-array-as -arguments-not-a-array-in-php) - второй ответ. –

ответ

3

Поскольку Феликс предложил вам передать подлежащий вызову. Для метода класса, который является array с объектом inatance (или имя класса, если это статический метод) и имя метода:

call_user_func_array(array($obj,'myMethod'), $args)

+0

Спасибо за помощь. – FlyingCat

Смежные вопросы