很简单的代码:Session变量似乎并没有被保存
<?
session_start();
$_SESSION['t'.time()] = "ok";
echo "<pre>".print_r($_SESSION, 1)."</pre>";
?>
显示,符合市场预期,像
Array
(
[t1330966834] => ok
[t1330966835] => ok
[t1330966836] => ok
)
1/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";
但它仍然是时间与只剩一个格。
在2个不同的服务器上测试php 5.2.13和5.3.10。 我在做什么错?
尝试分配'$ _SESSION ['t'.time()] ='ok'; $ _SESSION [time()] ='ok'',看看会发生什么。 't'版本不断出现,而且正式版本没有显示,然后出现了一些奇怪的情况 – 2012-03-05 17:19:41
我不太了解PHP会话变量的古怪问题来回答这个问题,但是当你把't'它变成了一个数字索引而不是字符串索引,也许PHP只在会话变量中存储一个数字索引或者什么?不确定,但似乎这与它有关。 – Travesty3 2012-03-05 17:22:27