我有以下课程:
class Actions_con extends Calls
{
public function __construct()
{
parent::__construct();
}
public function redirect()
{
$this->_data['request'] = '_' . $this->url[3] . '()';
return $this->{$this->_data['request']};
}
}
在父类Calls
中,我有以下方法:
protected function _login(){ echo 'login'; }
在我的基类中,属性$this->url[3]
等于“login”。我想要做的是通过这个变量名称调用此方法。它甚至可能吗?
答案 0 :(得分:1)
您非常接近解决方案。您只需要连接括号,而不是将它们放在您调用方法的位置,例如
public function redirect() { $this->_data['request'] = '_' . $this->url[3]; return $this->{$this->_data['request']}(); //↑↑ See here }