为什么我只在Session中存储数组中的第一个字符?

时间:2011-10-30 10:09:05

标签: php

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

现在,我尝试访问该数组的成员,如:

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

现在,问题在于它只提供字符串“key”的第一个字符。奇怪的是,它在localhost上完美运行,也在我之前的托管上运行。 (我现在在主持人身上)。

我做错了什么?

2 个答案:

答案 0 :(得分:5)

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

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

如果你有register_globals和一些名为$tamplate的变量,它可能会重写$ _SESSION内容

答案 1 :(得分:1)

问题是$_SESSION["template"]不是数组而是字符串。 ["key"]被视为索引[0],会产生第一个字符

因此,您的代码与$_SESSION["template"][0]

相同