Переменные сеанса не сохраняются

Довольно простой код:

<?
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 разных серверах. Что я делаю не так?

7
задан CodeCaster 5 March 2012 в 17:53
поделиться