如果我在PHP类中重载__call
方法,如果我的代码不执行其他操作,我怎么能调用实际方法?例如:
public function __call($name, $arguments)
{
if($name == 'tom')
{
$this->doName($name);
}
else
{
// Something here to carry on the __call maybe:
// $this->$name($arguments);
}
}
问题是$arguments
是作为数组传递的,我怎么能继续通过信息传递它们$this->$name($arg, $arg, $arg ...)
有正确的方法吗?
答案 0 :(得分:19)
您可以致电:
return parent::__call($name, $arguments);
或者我误解了你的要求?
修改强>
如果您的意思是想要致电$this->$name()
尝试触发parent::__call()
,那么它将无效。你将陷入无限循环,直到堆栈溢出并且php崩溃(换句话说,它很糟糕)......
答案 1 :(得分:6)
您可以使用:
call_user_func_array("self::method", $parameters)
答案 2 :(得分:5)