Вызов множественных методов одного и того же класса

В моем классе Helper() У меня есть 2 метода, которые выглядят так:

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

Решение

Чтобы иметь возможность связывать методы, эти методы должны возвращать исходный экземпляр Helper. Попробуй вернуться $this изнутри методы. Однако, как прокомментировал РоманПерехрест, я не думаю, что перечисленные здесь методы подходят для создания цепочки. Было бы лучше, если бы в ваш класс был добавлен еще один метод, объединяющий два метода, которые вы указали здесь.

Я не совсем уверен, что вы пытаетесь сделать, но что-то вроде приведенного ниже может быть то, что вы ищете:

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

Наконец, вы могли бы подумать о сокращении сферы вашего is_active_page а также go_to_dashboard функции, если их больше не нужно вызывать извне Helper учебный класс.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector