【发布时间】:2011-06-16 19:07:18
【问题描述】:
我有 2 个文件在 $_SESSION 数组中放置了一些东西。 文件1.php
<?php
session_start();
$_SESSION[] = 'Hi';
echo '<pre>';
print_r($_SESSION);
echo '</pre>';
打印出来的
Array
(
[0] => Hi
)
还有和file1类似的file2.php
<?php
session_start();
$_SESSION[] = 'There!';
echo '<pre>';
print_r($_SESSION);
echo '</pre>';
我想先转到file1,然后再转到file2。 在 file2 中打印 $_SESSION 应该会输出
Array
(
[0] => Hi
[1] => There!
)
我错了吗?
我不得不提到我收到通知:Unknown 在第 0 行的 Unknown 中跳过数字键 0。 并且我的 php.ini 中的 register_globals 设置为 Off。
正如我在 cmets 中看到的,对于你们中的某个人,file2 打印了一个包含 2 个项目的数组,而对于其他人(比如我)来说,“hi”项目会丢失。这似乎会发生,但对于 Marc B 而言,只有当我们使用数字作为会话数组的索引而不是字符串时才会发生这种情况。
对于 Marc B,会话的行为符合我的预期。你可以在这里发布你的 php.ini 吗?所以我可以把你的和我的比较一下吗?
【问题讨论】:
-
最好的老师是经验。这是一个简单的问题,您可以尝试一下...
-
好吧,我当然测试过了 :) 但是,当我进入 file2 时,只有 Array([0]=>There!)。我开始怀疑我使用这个数组的方式。通常,如果我定义一个数组 $a=array() 那么我可以通过执行 a[]=0;a[]='Hello'... 来添加项目,但它似乎与 $_SESSION 数组不一样。