Как цикл foreach влияет на переменную сеанса?PHP - foreach влияет на значение сеанса
session_start();
$_SESSION[test] = "Session content";
echo $_SESSION[test].'<br />';
$test_array = array("test", "array", "something", "array end");
foreach($test_array as $test){
echo $test.'<br />';
}
echo '<br />Session content after foreach: '.$_SESSION[test].'<br />';
Когда я запускаю этот код на некоторых веб-хостингах, его выход в порядке.
Session content
test
array
something
array end
Session content after foreach: Session content
Но только при первом исполнении (когда сеанс создается). Когда я выполняю этот код второй раз (сеанс уже создан) его результат выглядит следующим образом:
Session content
test
array
something
array end
Session content after foreach: array end
Я не знаю, как может переменный $ тест влияет $ _SESSION [тест].
+1: приятно поймать! Я не понимал, как может возникнуть описанная проблема, и не думал о register_global - после установки register_global = On, я воспроизвожу проблему ^^ ;; и если бы я мог, я бы дал вам еще один +1 для «вы не должны использовать регистровые глобалы» –
+1 для просмотра того, что происходит. Ключ без кавычек был немного красно-селедочным. –
+1 Я не знал о register_globals, спасибо, что объяснил это! – dusan