Оператор переключения 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
за помощь с этим!