为什么我只得到第一个字符存储在会话数组


Why am I getting only first character in array stored in Session?

我有一个数组(mysql查询结果)存储在$_SESSION变量中。

现在,我尝试访问数组中的一个成员,如:

$_SESSION["template"]["key"]

现在,问题是它只给出了字符串"key"的第一个字符。奇怪的是,它在本地主机上运行得很好,在我以前的主机上也是如此。(我现在在hostgator上)。

我做错了什么?

意味着您的$_SESSION["template"]变量是一个字符串,因此,$_SESSION["template"]["key"]求值为$_SESSION["template"][0]并返回第一个字符。

为什么你的$_SESSION["template"]是一个字符串而不是一个数组-这是一个调试问题。你现在就可以开始了。

如果您打开了register_globals和一些名为$tamplate的变量,它可能会重写$_SESSION内容

问题是$_SESSION["template"]不是一个数组,而是一个字符串。["key"]被认为是索引[0],其结果是第一个字符

所以你的代码和$_SESSION["template"][0]一样