2

次のコードがあります。

$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] => 12
)

itemqtys[id]:

ID: 5

ご覧のとおり、$id 変数をキーとして配列の値にアクセスしようとすると、値が返されません。ただし、これを行うと:

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

結果は次のとおりです。

アイテム数[5]: 12

変数を使用して配列内のインデックスを指定できないのはなぜですか?

4

2 に答える 2

6

デバッグ時には var_dump() を使用して値を調べます。var dump は文字列の長さを示していることに注意してください。デバッグ時にも右クリック> HTMLソースを表示します。

私の推測では、 $id は文字列であり、末尾に空白文字が含まれています。

于 2012-05-20T22:06:18.680 に答える
1

$idおそらく期待するものが含まれていない場合は、最初に整数にキャストしてください。

最初の行を次のように変更します。

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

$_GET['id']文字列を返し、int配列インデックスとして使用する前にキャストする必要があります。

于 2012-05-20T22:06:50.873 に答える