PHP Как вызвать parent:: __ call() и передать аргументы

Если я перегружаю метод __call в классе PHP, как я могу вызвать фактический метод, если мой код не делает что-то еще? Например:

public function __call($name, $arguments)
{
    if($name == 'tom')
    {
        $this->doName($name);
    }
    else
    {
        // Something here to carry on the __call maybe:
        // $this->$name($arguments);
    }
}

Проблема в том, что $arguments передается как массив, как я могу продолжать передавать их через info $this->$name($arg, $arg, $arg ...), есть ли правильный способ сделать это?

Ответы

Ответ 1

Вы можете позвонить:

return parent::__call($name, $arguments);

Или я не понимаю, что вы спрашиваете?

Edit:

И если вы хотите, чтобы вы вызывали $this->$name(), чтобы попытаться запустить parent::__call(), это не сработает. Вы завершаетесь бесконечным циклом до тех пор, пока стек не переполнится и не сработает php (другими словами, это плохо)...

Ответ 2

Вы можете использовать это:

call_user_func_array("self::method", $parameters)