2009-07-16 14 views
8

jestem analizując cudzego kodu PHP i Zauważyłem, że HTML wejście ma wiele ukrytych pól wejściowych z nazwami, które kończą się „[]”, na przykład:Używanie nawiasów kwadratowych w ukrytym wejściem HTML pól

<input type="hidden" name="ORDER_VALUE[]" value="34" /> 
<input type="hidden" name="ORDER_VALUE[]" value="17" /> 

strona PHP, który przetwarza to wejście przejmuje każdą wartość takiego:

foreach ($_REQUEST["ORDER_VALUE"] as $order_value) { 
    /... 
} 

Co to jest „[]” używany? Określając, że byłoby wiele pól wejściowych o tej samej nazwie?

Odpowiedz

11

Tak. Zasadniczo PHP będzie wiedziało, że wszystkie te wartości mają taką samą nazwę w tablicy.

Dotyczy to wszystkich pól wejściowych, nawiasem mówiąc, nie tylko ukrytych.

1

Większość bibliotek przetwarzania formularzy oczekuje, że autor określi, czy chce potraktować fragment danych jako ciąg znaków lub tablicę łańcuchów.

Autorzy PHP zdecydowali się być niezgodne z resztą świata i wymagają, aby HTML był skonstruowany specjalnie.

Umieszczenie nawiasów kwadratowych na końcu nazwy mówi PHP, aby traktował to jako tablicę danych.

14

Przekazuje dane jako tablicę do PHP. Gdy masz formularze HTML o tej samej nazwie, będą one dołączane do list przecinkowych, takich jak listy wyboru. Tutaj PHP ma przetwarzanie przekonwertować że do tablicy PHP opartej na [] tak:

zdobycia wynik wysłane jako tablica do skryptu PHP możesz wymienić lub elementów takich jak to:

<input name="MyArray[]" /> 
<input name="MyArray[]" /> 
<input name="MyArray[]" /> 
<input name="MyArray[]" /> 

Zwróć uwagę na kwadratowe nawiasy po nazwie zmiennej, co czyni ją tablicą. Można grupować elementy w różnych tablic przypisując tę ​​samą nazwę do różnych elementów:

<input name="MyArray[]" /> 
<input name="MyArray[]" /> 
<input name="MyOtherArray[]" /> 
<input name="MyOtherArray[]" /> 

To daje dwie tablice, MyArray i MyOtherArray, która zostanie wysłana do skryptu PHP. Możliwe jest również, aby przypisać konkretne klucze do swoich tablic:

<input name="AnotherArray[]" /> 
<input name="AnotherArray[]" /> 
<input name="AnotherArray[email]" /> 
<input name="AnotherArray[phone]" /> 

http://us2.php.net/manual/en/faq.html.php

Powiązane problemy