无法使用变量来访问数组中的值以指定索引

时间:2012-05-20 22:02:19

标签: php

我有以下代码:

$id = $_GET['id'];

echo '<br>' . 'id: ' . $id . '<br><br>';

echo '<pre>';
            print_r($itemQtys);
echo '</pre>';

echo '<br>' . 'itemqtys[id]: ' . $itemQtys[$id] . '<br>';

echo '<br>' . 'id: ' . $id . '<br>';

输出结果为:

  

id:5

     

阵列
   (
              [5] =&gt; 12个
    )

     

itemqtys [ID]:

     

id:5

如您所见,当我尝试使用$ id变量作为键访问数组中的值时,不返回任何值。但是,当我这样做时:

echo '<br>' . 'itemqtys[5]: ' . $itemQtys[5] . '<br>';

结果是:

  

itemqtys [5]:12

为什么我不能使用变量来指定数组中的索引?

2 个答案:

答案 0 :(得分:6)

调试时使用var_dump()来检查值。注意var dump告诉你字符串的长度。右键单击&gt;调试时查看html源代码。

我的猜测是$ id是一个字符串并且有尾随空白字符。

答案 1 :(得分:1)

$id可能不包含您的期望,首先将其转换为整数。

将您的第一行更改为:

$id = (int) $_GET['id'];

$_GET['id']返回一个字符串,在将其用作数组索引之前必须将其强制转换为int