Согласно описаниям PHP.net, session_reset () должен повторно инициализировать массив сеанса с исходными значениями. Тем не менее, когда я запускаю следующий код, вывод будет «Некоторое новое значение», тогда как вывод должен быть «Некоторое значение». Также мой смонтированный Версия PHP 5.6.1. Пожалуйста, ответьте, если знаете, в чем проблема?
<?php
session_start();
$_SESSION["A"] = "Some Value";
echo $_SESSION["A"];
$_SESSION["A"] = "Some New Value";
session_reset();
echo $_SESSION["A"];
?>
session_reset()
на самом деле возвращается $_SESSION
сразу после session_start()
или, точнее, до последних сохраненных значений (либо по окончанию сценария, либо по session_write_close
).
Так что, если ничего не было установлено для $ _SESSION [«A»], когда сессия была в последний раз закрыта, для вашего второго echo
ты получишь Notice: Undefined index: A
однако, если вам ранее было присвоено значение (например, значение «Некоторое новое значение» назначено, а затем сохранено) — вы получите это значение. Это, вероятно, случай в вашем примере.
Других решений пока нет …