Довольно простой код:
<?
session_start();
$_SESSION['t'.time()] = "ok";
echo "<pre>".print_r($_SESSION, 1)."</pre>";
?>
показывает, как и ожидалось, что-то вроде
Array
(
[t1330966834] => ok
[t1330966835] => ok
[t1330966836] => ok
)
после перезагрузки 3-х страниц.
Давайте изменим несколько символов:
$_SESSION[time()] = "ok";
(теперь без 't') и I после нескольких перезагрузок ожидайте что-то вроде
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 разных серверах. Что я делаю не так?