Проблема PHP-сессии с оператором if - PullRequest
0 голосов
/ 11 августа 2011

У меня есть следующий код:

function get_error(){
  $update = "";
  if($_SESSION['sessionName'][0] === 1){            
      $update .= "<div class='good'>You have just driven " . convertMiles($_SESSION['sessionName'][1], $this->units) . ".</div>";
      $_SESSION['sessionName'][0] = 0;
  }
  return $update;
}

С этим оператор if завершается неудачно, и get_error возвращает "", как если бы он установил $ _SESSION ['sessionName'] [0] в 0 и затем запустилоператор if.

Это работает:

function get_error(){
  $update = "";
  if($_SESSION['sessionName'][0] === 1){            
      $update .= "<div class='good'>You have just driven " . convertMiles($_SESSION['sessionName'][1], $this->units) . ".</div>";
      //$_SESSION['sessionName'][0] = 0;
  }
  return $update;
}

Почему это закомментирует обновление сеанса внутри блока if (Это даже не должно выполняться, пока не будет выполнено условиеи $ update был установлен).На этом get_error возвращает HTML и работает нормально.

Я действительно не могу понять это, и любая помощь будет принята с благодарностью.

РЕДАКТИРОВАТЬ: Также яустановить сессию до вызова этой функции следующим образом:

$_SESSION['sessionName'] = array(1,10);

1 Ответ

0 голосов
/ 11 августа 2011

Вы пробовали это:

get_error($_SESSION['sessionName'][0]);

function get_error(&$whatever){
  $update = "";
  if($whatever === 1){            
      $update .= "<div class='good'>You have just driven " . convertMiles($_SESSION['sessionName'][1], $this->units) . ".</div>";
      $whatever = 0;
  }
  return $update;
}

НТН

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...