2011-05-03 77 views
1

我在PHP上看到,如果我發送一個名稱爲[]的參數列表,它將自動將這些值保存到數組中。什麼是存儲在數組中的[]變量列表

因此,舉例來說,如果我通過GET發送值:

<input type="checkbox" name="customArray[]" value="1" checked="checked" /> 1 
<input type="checkbox" name="customArray[]" value="2" checked="checked" /> 2 
<input type="checkbox" name="customArray[]" value="3" checked="checked" /> 3 

我可以在PHP訪問該數組$ _GET [ 'CustomArray的']。

我想知道這種行爲:這是一種非常規的行爲嗎?它是否被指令引導?我可以禁用/能夠嗎?等等...

我不喜歡我的創造應用和知道,在某些年份(可能),這將不再提供:)

回答

2

Yes, it's standard behaviour.

沒有,你可以不要禁用它。

將來不會失效。或者,如果是這樣,它可能只會與語言的其他巨大變化一起完成,這也會導致很多其他代碼被破壞。總之,不要擔心與此功能的向前兼容性;它不會去任何地方。

事實上,這是常用的地方。

+0

是的,我經常使用這種策略:)謝謝 – kwichz 2011-05-03 21:52:28

+0

@kwichz:沒問題 – 2011-05-03 21:52:51

1

如果您不想創建一個數組,那麼請不要在您的字段名稱中使用[]表示法。這將恢復到標準的做法,其中重複的名稱字段將相互覆蓋,最後一個被髮送爲「勝利者」。

這是PHP中的標準行爲。其他語言可能會或可能不會兌現這樣的結構。據我所知,沒有指示在PHP中啓用它 - 它始終存在並且不能被禁用。

+0

是的..但事實上,我想這個符號:)謝謝 – kwichz 2011-05-03 21:52:05

1

當你有多個chceckbox時,你可以使用這種風格的數據管理,例如,如果你正在做一些民意調查,表格等。但是如果你不想使用數組風格,你可以重命名他們(checkbox1, checkbox2, checkbox3,而不是checkboxes[] checkboxes[] checkboxes[]

相關問題