Vedo spesso, in particolare nel mondo PHP, la seguente scrittura se si desidera creare una matrice FORM.Parentesi quadrate in matrici di moduli HTML. Solo convenzionale o con un significato?
<input name="MyArray[]" />
<input name="MyArray[]" />
con le parentesi quadre []. Tuttavia, l'operazione di invio passa semplicemente la stessa voce chiave due volte. Sembra che il [] è solo convenzionale che mappa bene alla matrice mondo PHP, ma si otterrebbe lo stesso risultato con solo il seguente
<input name="MyArray" />
<input name="MyArray" />
Infatti, in Django ho un elenco di due voci, a prescindere dalla lo stile usato
È vero? La [] è solo convenzionale, o in realtà contiene un vero significato dalle informazioni chiave/valore HTML e HTTP?
Penso che sia stata solo una decisione di progettazione. Non lo vedo come una limitazione. –
È una limitazione se si prendono moduli esistenti che funzionano perfettamente con qualsiasi altra piattaforma lato server e si tenta di usarli con PHP: è necessario modificare i valori di tutti gli attributi dei nomi degli elementi rilevanti e guai se ne manchi uno. È un'astrazione inutilmente lacerante: l'HTML non dovrebbe preoccuparsi del fatto che il server usa matrici, per non parlare del fatto che utilizza la sintassi di indicizzazione dell'array in stile C. – NickFitz
+1 '[]' è stato uno dei primi errori di progettazione e uno di quelli che PHP non è riuscito a correggere da allora. Un modo diverso per accedere ai parametri quando si desidera ottenere più valori sarebbe stato migliore, ma non sarebbe stato adattato con la strategia originale 'register_globals'. – bobince