为什么我不能将整数用作PHP $ _SESSION数组中的索引?

Ang*_*dar 5 php

例如:

$_SESSION['1'] = 'username'; // works
$_SESSION[1] = 'username'; //doesnt work
Run Code Online (Sandbox Code Playgroud)

我想将会话数组索引存储为数组索引.所以o/p是:

Array(
[1] => 'username'
)
Run Code Online (Sandbox Code Playgroud)

Luk*_*ins 9

$_SESSION 只能用作关联数组.

你可以这样做:

$_SESSION['normal_array'] = array();
$_SESSION['normal_array'][0] = 'index 0';
$_SESSION['normal_array'][1] = 'index 1';
Run Code Online (Sandbox Code Playgroud)

就个人而言,我只是坚持使用关联数组.

$_SESSION['username'] = 'someuser';
Run Code Online (Sandbox Code Playgroud)

要么

$_SESSION['username_id'] = 23;
Run Code Online (Sandbox Code Playgroud)


Joh*_*ker 5

我怀疑这可能是因为$ _SESSION数组纯粹是一个关联数组.另外,正如PHP手册所说:

$ _SESSION关联数组中的键受到与PHP中常规变量名称相同的限制,即它们不能以数字开头,必须以字母或下划线开头.

顺便提一下,您是否检查过错误日志中是否有任何NOTICE级错误?(您可能必须启用此级别.)尝试使用数字键很可能会引发错误.