1

我有两页,但$_SESSION["1"]第二页没有收到。

更新:事实证明,如果我在会话中输入一个数字,它将不起作用。我输入了一个正常的字符串并工作了..我从未见过这种情况发生

第一

<?php
session_start();
$_SESSION["1"] = "LOGGED";
?>

第二

<?php
session_start();

echo $_SESSION["1"];
?>

为什么这不起作用?

4

3 回答 3

3

带有单个数字的会话变量将不起作用,但是1a会起作用,a1甚至只是一个“字母”a也可以起作用。

第一

<?php
session_start();
$_SESSION["a1"] = "LOGGED";
?>

第二

<?php
session_start();
echo $_SESSION["a1"];
?>

PHP.net 手册中关于会话变量的示例

<?php
$_SESSION[1][1] = 'cake'; // fails

$_SESSION['v1'][2] = 'cake'; // works
?>

来源: http: //php.net/manual/en/language.types.array.php


编辑:

  • 根据bob-the-destroyer的评论:

要添加有关数组键的内容,请从php.net/manual/en/language.types.array.php中,“包含有效整数的字符串将转换为整数类型”。$_SESSION 上的手册说“一个关联数组”。所以从字面上看是一个关联数组......?如果有关访问和存储会话数据的这一点重要信息仍然隐藏在手动注释中,这对任何人都没有好处。

于 2013-09-07T02:05:44.617 回答
0

您可以将 $_SESSION 分配给定义 $_SESSION 用途的名称,例如。$_SESSION['logged'] = 已记录;不要忘记以字母开头 $_SESSIONS,并使它们更具描述性。这使您的代码更具可读性和易于理解

于 2013-09-07T02:56:52.227 回答
0

行为的原因是 C 变量声明。由于变量名称不能以数字开头。

于 2013-09-07T03:15:42.523 回答