关于php $ _SESSION数组的一个愚蠢的"重要"问题

Fra*_*sco 3 php arrays session

我有2个文件放在$ _SESSION数组中.file1.php

<?php
session_start();

$_SESSION[] = 'Hi';

echo '<pre>';
print_r($_SESSION);
echo '</pre>';
Run Code Online (Sandbox Code Playgroud)

那打印

Array
(
    [0] => Hi
)
Run Code Online (Sandbox Code Playgroud)

和file2.php类似于file1

<?php
session_start();

$_SESSION[] = 'There!';

echo '<pre>';
print_r($_SESSION);
echo '</pre>';
Run Code Online (Sandbox Code Playgroud)

我想首先转到file1然后转到file2.应输出在file2中打印$ _SESSION

Array
(
    [0] => Hi
    [1] => There!
)
Run Code Online (Sandbox Code Playgroud)

我错了吗?

我要提到的是我收到通知:在第0行的Unknown中未知的跳过数字键0.我的php.ini中的register_globals设置为Off.

正如我在你的评论中所看到的,file2打印了一个包含2个项目的数组,而对于其他人(像我一样),'hi'项目会丢失.这似乎发生了,但不是对于Marc B,只有当我们使用数字作为会话数组的索引而不是字符串时.

对于Marc B,会话的行为与我预期的一样.你能在这里发布你的php.ini吗?所以我可以和你的比较吗?

jan*_*sen 5

像这样$_SESSION的超级球不是正常的阵列.你应该在里面存储一个数组$_SESSION,如下所示:

档案1: $_SESSION['foo'][] = 'Hi!';

档案2: $_SESSION['foo'][] = 'there';