@bedolazhka

Как правильно делать возврат из метода?

Я рассуждаю, например: мой метод должен вернуть или true или false.
А что вернёт метод, если по условию есть или true или действие?
protected function redirect($http = null)
    {
        session_regenerate_id();
        if (is_null($http)) {
            $redirect = $_SERVER['HTTP_REFERER'] ?? '/';
        } else {
            $redirect = $http;
        }
        header('location: ' . $redirect);
        exit();
    }

protected function checkToken(): bool
    {
        if (filter_input(INPUT_POST, 'do') == session_id()) {
            return true;
        }
        $this->redirect(); // как видим тут у нас редирект
        return false; // тогда нужно ли тут возвращать булев?
    }

// применение
if (filter_has_var(INPUT_POST, 'do') and $this->checkToken()) {}
  • Вопрос задан
  • 103 просмотра
Пригласить эксперта
Ответы на вопрос 2
@Nc_Soft
Метод checkToken() делает 2 дела, поэтому у вас не получается решить что он должен возвращать.
Ответ написан
Для метода redirect($http = null) поставьте тип возвращаемой информации - void.
То есть, укажите, что, в буквальном смысле - "ничего". Потому как у Вас даже return'a нет, значит ничего и не возвращается.
protected function redirect($http = null) : void
P.S. Работает с версии PHP 7.2+ (если не ошибаюсь)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы