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 ...) есть ли правильный способ сделать это?

17
задан Kara 24 February 2014 в 00:19
поделиться

3 ответа

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

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

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

Изменить:

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

19
ответ дан 30 November 2019 в 12:35
поделиться
5
ответ дан 30 November 2019 в 12:35
поделиться

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

call_user_func_array("self::method", $parameters)
6
ответ дан 30 November 2019 в 12:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: