调用同一类的mulltiple方法

时间:2017-02-19 20:07:10

标签: php methods

在我的班级Helper()中,我有两种方法,如下所示:

public function is_active_page($page) {
    $url = explode("/",$_SERVER["REQUEST_URI"]);
    if (end($url) === $page) {
        return true;
    }
}

public function go_to_dashboard() {
    if (isset($_SESSION['login'])) {
        header('Location: http://example.com');
    }
}

我现在想这样称呼它们:$helper->is_active_page('page')->go_to_dashboard();而不是为每种方法使用2行。

出于某种原因,这对我不起作用。为什么呢?

1 个答案:

答案 0 :(得分:1)

为了能够链接方法,这些方法需要返回原始的Helper实例。尝试从方法中返回$this。就像RomanPerekhrest评论的那样,我不认为你在这里列出的方法适合链接。你最好在你的课程中添加另一种方法,结合你在这里描述的两种方法。

我不确定你要做什么,但下面的内容可能就是你要找的东西:

public function redirect($page){
    if($this->is_active_page($page)){
        $this->go_to_dashboard();
    }
}

最后,如果不再需要从is_active_page类外部调用它们,您可以考虑缩小go_to_dashboardHelper函数的范围。

相关问题