PHP функция не сохраняет переменные - PullRequest
1 голос
/ 09 мая 2011

У меня есть функция, которая выглядит следующим образом:

function findSchedule($team)
{
    switch($team)
    {
        case "Baltimore Orioles":

        $team_home[42] = "Tampa Bay Rays";
        $team_home[43] = "Boston Red Sox";
        $team_home[44] = "Boston Red Sox";
        $team_home[45] = "$team";
        $team_home[46] = "$team";
        $team_home[47] = "$team";
        $team_home[48] = "$team";

        $team_away[42] = "$team";
        $team_away[43] = "$team";
        $team_away[44] = "$team";
        $team_away[45] = "New York Yankees";
        $team_away[46] = "New York Yankees";
        $team_away[47] = "Washington Nationals";
        $team_away[48] = "Washington Nationals";

        $team_date[42] = "Sun, May 15";
        $team_date[43] = "Mon, May 16";
        $team_date[44] = "Tue, May 17";
        $team_date[45] = "Wed, May 18";
        $team_date[46] = "Thu, May 19";
        $team_date[47] = "Fri, May 20";
        $team_date[48] = "Sat, May 21";

        break;

        case "Boston Red Sox":

        $team_home[42] = "$team";
        $team_home[43] = "$team";
        $team_home[44] = "$team";
        $team_home[45] = "$team";
        $team_home[46] = "$team";
        $team_home[47] = "$team";
        $team_home[48] = "$team";

        $team_away[42] = "Baltimore Orioles";
        $team_away[43] = "Baltimore Orioles";
        $team_away[44] = "Detroit Tigers";
        $team_away[45] = "Detroit Tigers";
        $team_away[46] = "Chicago Cubs";
        $team_away[47] = "Chicago Cubs";
        $team_away[48] = "Chicago Cubs";

        $team_date[42] = "Mon, May 16";
        $team_date[43] = "Tue, May 17";
        $team_date[44] = "Wed, May 18";
        $team_date[45] = "Thu, May 19";
        $team_date[46] = "Fri, May 20";
        $team_date[47] = "Sat, May 21";
        $team_date[48] = "Sun, May 22";

        break;
  }

  for($i = 42;$i < 49;++$i)
  {
    return $team_home[$i];
    return $team_away[$i];
    return $team_date[$i];
  }

Когда я пытаюсь использовать переменные $ team_date, $ team_away и $ team_home следующим образом, единственная, которая работает, этоПеременная team_home.

$game = filter_input(INPUT_GET, 'game', FILTER_SANITIZE_STRING);

$team_home[$game] = findSchedule($team);
$team_away[$game] = findSchedule($team);
$team_date[$game] = findSchedule($team);

Есть идеи?

Спасибо,

Копье

Ответы [ 2 ]

3 голосов
/ 09 мая 2011

Это связано с тем, как вы построили свой последний for цикл.Вы установили return каждое значение;оператор return завершает обработку.Вы хотите echo каждый из них, а затем возвращать или, альтернативно, никогда не указывать явно return, а просто завершать функцию.

Чтобы вернуть все аргументы, вы можете просто создать один, больший массив и вернуть это:

return array( $team_home, $team_away, $team_date);
1 голос
/ 09 мая 2011

На обратной стороне вы пишете массив:

return array($team_home, $team_away, $team_date);

А на принимающей стороне вы можете использовать list():

list($team_home, $team_away, $team_date) = findSchedule($team);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...