我正在设置一个$_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)
,然后是刚刚设置的最后一个会话变量。
现在,如果再次使用 val[1] 中的新值调用此 if 语句,例如 59,它会覆盖最后一个,我print_r
将显示如下内容:Array ( [iamloggedIn] => 1 [userID] => 5 [59] => 1 )
它没有创建新的会话变量。
这是因为我使用变量作为索引吗?我首先尝试将索引变量作为整数,现在作为字符串尝试,但结果是相同的。