PHP如何调用parent :: __ call()并传入参数

tar*_*eld 17 php

如果我__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);
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是$arguments作为一个数组传递,我怎么能继续通过它传递信息$this->$name($arg, $arg, $arg ...)是否有正确的方法来做到这一点?

irc*_*ell 19

你可以打电话:

return parent::__call($name, $arguments);
Run Code Online (Sandbox Code Playgroud)

或者我误解了你的要求?

编辑:

如果你的意思是你想打电话$this->$name()试图触发parent::__call(),它将无法工作.你将陷入无限循环,直到堆栈溢出并且php崩溃(换句话说,它很糟糕)......


Seb*_*itz 6

你可以用这个:

call_user_func_array("self::method", $parameters)
Run Code Online (Sandbox Code Playgroud)