我正在设置一个$_SESSION
变量与变量索引,但它不成立。
if (isset($_GET['reply']))
{
echo $_SERVER['QUERY_STRING']; // example output: reply&55
$vals = explode('&',$_SERVER['QUERY_STRING']); // val[1] = 55
session_start();
$_SESSION[strval($vals[1])] = 1; //tried as int first and now convert to string
print_r($_SESSION);
}
当我看到的$ _SESSION内容它显示:Array ([iamloggedIn] => 1 [userID] => 5 [55] => 1)
是表示用正常的字符串索引设置(如$_SESSION['userID'] = 5)
,以及刚刚成立,那么最后 会话变量两个变量
现在,如果这个if语句再次用val [1]中的新值调用,比如说59,它将覆盖最后一个,我的print_r
将显示 类似的东西:Array ([iamloggedIn] => 1 [userID] => 5 [59] => 1)
它不创建新的会话变量。
这是因为我使用变量作为索引?我首先尝试了一个整数的索引变量,现在作为一个字符串,但结果是一样的。
你是否在你的PHP文件的顶部写了'session_start();'? – DanielX2010
在我设置'$ _SESSION'变量之前,我在上面的代码中调用了'session_start()'。 – user2250892
在处理完所有Cookie和会话之前,您可能不应该产生任何输出。 – starlocke