用变量调用类方法

时间:2015-12-02 00:41:55

标签: php oop

我有以下课程:

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”。我想要做的是通过这个变量名称调用此方法。它甚至可能吗?

1 个答案:

答案 0 :(得分:1)

您非常接近解决方案。您只需要连接括号,而不是将它们放在您调用方法的位置,例如

public function redirect()
{
    $this->_data['request'] = '_' . $this->url[3];
    return $this->{$this->_data['request']}();
                                         //↑↑ See here
}