Оператор переключения PHP не вернет переменную

ОБНОВЛЕНИЕ - 2018.11.27

Обновлен код, чтобы включить недостающую строку, которая в конечном итоге приведет к обнаружению ошибки.


Я создаю веб-сайт, который содержит много спортивной статистики и в значительной степени опирается на внешнюю базу данных веб-приложений. Основные интерфейсы для взаимодействия сайта с базой данных веб-приложения: PHP Classes,

Внутри одного из классов я написал приватную функцию с целью присоединения функции (которая запрашивает базу данных webapp) к $query переменная. Запросы настроены для динамической настройки на основе page рассматривается в любое время. Я могу запросить базу данных веб-приложений с веб-сайта, однако при попытке вернуть переменную, которая содержит правильную функцию запроса, он возвращает только default значение.

Может кто-нибудь объяснить, почему switch Заявление ниже не работает или где я написал заявление неправильно? (НОТА: $schedule, $user_query а также $user_tz являются public свойства класса):

private function _get_matches_query() {

    switch( $this->schedule ) {

        case 'national':
            $query = stats()->get_matches_by_user_query( $this->user_query, $this->user_tz );
            break;

        case 'mens-15s':
            $query = stats()->get_matches_by_type( $this->user_query, $this->user_tz, '15s', 'M' );
            break;

        case 'mens-7s':
            $query = stats()->get_matches_by_type( $this->user_query, $this->user_tz, '7s', 'M' );
            break;

        case 'womens-15s':
            $query = stats()->get_matches_by_type( $this->user_query, $this->user_tz, '15s', 'W' );
            break;

        case 'womens-7s':
            $query = stats()->get_matches_by_type( $this->user_query, $this->user_tz, '7s', 'W' );
            break;

        default:
            $query = false;
            // This line was what I needed to include from the beginning.
            die( 'Ended in default for <pre>' . $this->schedule . '</pre>' );

    }

    return $query;

}

Любой совет будет очень признателен.

Ура!

1 ответ

Просто хотел бы поблагодарить вас Sammitch а также Ice76 для того, чтобы задать ключевые вопросы и дать мне руководство, чтобы выяснить, где проблема была. Если бы я мог, я бы отдал им честь.

В конечном итоге то, к чему это привело, $this->schedule собственность внутри die функционировать и видеть, что $this->schedule действительно был.

Вместо получения national, mens-15s и т. д. (что я получал при использовании var_dump внутри класса __construct метод), когда я добавил die( $this->schedule ) к default случай switch Заявление, я обнаружил, что $this->schedule фактически выводил весь путь к расписанию, которое я просматривал, а не имя расписания, как я ожидал ранее.

Я обновил исходное сообщение с правильным использованием die Функция, чтобы найти ошибку. Опять СПАСИБО Sammitch а также Ice76 за помощь с этим!

Другие вопросы по тегам