2014-02-09 2 views
0

Я хочу вызвать функцию с аргументами переменной длины, хранящимися в массиве. Я заметил, что вы можете сделать это с помощью call_user_func_array($callback, $array); Однако он не работает на методы переменных экземпляра.Как вызвать метод переменной экземпляра с переменными аргументами из массива в php

class foo{ 
    $iVar 

    function A{ 
     $anArray = array(...); 
     call_user_func_array(iVar->methodName,$anArray); 
    } 
} 

Любые предложения?

ответ

1

Пара ошибок здесь. Во-первых, iVar не является constant, поэтому он должен начинаться с $. И поскольку это свойство foo, оно должно быть $this->iVar.

Во-вторых, вы не можете передать function. Вы должны передать его как callable. Таким образом, общий вызов должен выглядеть следующим образом:

call_user_func_array(array($this->iVar, 'methodName'), $anArray); 
Смежные вопросы