1

私はphpを使用しているウェブサイトを見ていますが、a[]=val1の代わりに表示されb=val2ます。私の質問は、なぜURLに角かっこがあるのですか?どのタイプのコードがこの効果を生み出しますか?

4

3 に答える 3

2

URLに角かっこが含まれているのはなぜですか?

角かっこはURLにval1あり、配列内の次の位置に割り当てられることを示しますa。ブラケットの空白部分について混乱している場合は、php配列がどのように機能するかを確認してください。

どのような種類のコードがこれを生成しますか?

このようなURLを作成するコードについては、コーダーまたはその他のスクリプトによる明示的な定義か、method="get"属性を使用したフォームによって何らかの形で作成される可能性があります。


例:

nameこれを作成するには、次のように入力フィールドの配列として配列を定義できます。

<form method="get">
  <input name="a[]" ... />
  <input name="a[]" ... />
  <input name="a[]" ... />
</form>

aまたは、次のURLでリンク(タグ)を作成することもできます。

<a href="foo.php?a[]=val1&a[]=val2&a[]=val3">Click Me!</a>


このURLをPHPで解析するには、$_GET変数を使用してURLから値を取得します。

<?php
  $a = $_GET['a'];

  $val1 = $a[0];
  $val2 = $a[1];
  $val3 = $a[2];
  ...

  print_r($a);
?>

ステートメントのプリントアウトは次のprint_r($a)ようになります(<pre>タグでラップした場合)。

Array (
  a => Array (
    0 => 'val1',
    1 => 'val2',
    2 => 'val3'
  )
)
于 2012-07-06T23:14:07.597 に答える
1

前のページには、次のような入力フィールドが表示されます。

<input name="color[]" type="checkbox" value="red">
<input name="color[]" type="checkbox" value="blue">
<input name="color[]" type="checkbox" value="green">

ここで、ユーザーは複数の応答を選択でき、それらはアクションページの$ _GET(およびURL)の$ color配列で利用可能であり、説明したように表示されます。

(同様に、ユーザー入力に基づかない配列として渡される隠れた変数である可能性もあります。)

于 2012-07-06T23:07:01.957 に答える
1

これは、配列に新しい要素を追加するための構文です。各変数の前にドル記号があるはずです。

$a[] = $val1;
于 2012-07-06T23:01:25.640 に答える