PHP会话通过偏移量传递值

时间:2009-12-08 07:30:10

标签: php session

我正在处理file1

中的以下代码
$_SESSION['manu']="hello";
$_SESSION[0]=$msg;
$_SESSION[1]=$msg1;
for($arr=0;$arr<sizeof($msg2);$arr++)
    $_SESSION[$arr+2]=$msg2[$arr];
$_SESSION[++$arr]=$msg3;
$_SESSION[++$arr]=$file_name;

在档案2中

echo sizeof($_SESSION);
for($arr=0;$arr<sizeof($_SESSION);$arr++)
    echo $_SESSION[$arr];
echo $_SESSION['manu'];

然而,在file2中,sizeof会话的结果是1,并且以偏移形式存储的所有会话值都会丢失?

2 个答案:

答案 0 :(得分:1)

您是否已将 session_start()置于文件的顶部?添加它以防万一没有。

答案 1 :(得分:1)

$_SESSION数组中元素的名称与普通PHP变量具有相同的限制:它们不能以数字开头,必须以字母或下划线开头。

因此,不允许使用数字作为会话元素。这就是你在过渡期间失去它们的原因 (如果您启用了错误报告,则会收到错误通知。)

而不是:

$_SESSION[0] = $msg;
$_SESSION[1] = $msg1;

尝试:

$_SESSION['msg'][0] = $msg;
$_SESSION['msg'][1] = $msg1;