Довольно простой код:
<code><?
session_start();
$_SESSION['t'.time()] = "ok";
echo "<pre>".print_r($_SESSION, 1)."
";?>
показывает, как и ожидалось, что-то вроде
Array
(
[t1330966834] => ok
[t1330966835] => ok
[t1330966836] => ok
)
после 3-страничных перезагрузок.
Давайте изменим несколько символов:
$_SESSION[time()] = "ok";
(теперь без 't'), и я ожидаю, что после нескольких перезагрузок будет что-то вроде
Array
(
[t1330966834] => ok
[t1330966835] => ok
[t1330966836] => ok
[1330967020] => ok
[1330967021] => ok
[1330967022] => ok
[1330967023] => ok
)
Но на самом деле результат совершенно другой:
Array
(
[t1330966834] => ok
[t1330966835] => ok
[t1330966836] => ok
[1330967020] => ok
)
У нас есть 3 предыдущих элемента массива и одна и только одна «временная» ячейка - независимо от того, сколько раз вы перезагружаете страницу. Время правильное, оно отличается каждую секунду, но только одна ячейка без 't'! Также я пробовал
$t =time();
$_SESSION[$t] = "ok";
и даже
$t =intval(time());
$_SESSION[$t] = "ok";
Но со временем остается только одна клетка.
Протестировано на php 5.2.13 и 5.3.10на 2 разных серверах. Что я делаю не так?