为什么PHP不允许在$\u会话中使用十进制值作为根键?

为什么PHP不允许在$\u会话中使用十进制值作为根键?,php,superglobals,Php,Superglobals,为什么PHP不允许在$\u会话中使用十进制值作为根键 例如 $paper_num = '159339'; $mark = 'A'; $_SESSION[$paper_num][$mark]; 。。。无法工作。您能否在会话中将其保存为数组,例如 <?php session_start(); $paper_num = '159339'; $mark = 'A'; $paper_detail = array( 'paper_number'=> $paper_num, 'paper_m

为什么PHP不允许在$\u会话中使用十进制值作为根键

例如

$paper_num = '159339';
$mark = 'A';

$_SESSION[$paper_num][$mark];

。。。无法工作。

您能否在会话中将其保存为数组,例如

<?php
session_start();
$paper_num = '159339';
$mark = 'A';

$paper_detail = array(
'paper_number'=> $paper_num,
'paper_mark'=> $mark);

$_SESSION['paper_details'] = $paper_detail;
print_r($_SESSION['paper_details']);
?>


最好试着看看结果。它不适用于'159339',但如果我用'A'替换根键,它确实有效。我希望能对这背后的逻辑有一个很好的解释。。。看起来很奇怪,但我相信有一个很好的理由。我更新了这个问题,试图得到更深入的答案。我认为php会将
'159339'
转换为
159339
(int)没问题,然后你可以访问每个变量,比如
$\u会话['paper\u details']['paper\u number']
$\u会话['paper\u details'['paper\u mark']