什么是将[]变量列表存储到数组中的指令

时间:2011-05-03 21:44:00

标签: php

我在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

我可以使用$ _GET ['customArray']在PHP上访问该数组。

我想知道这种行为:它是一种标准行为吗?它是由指令驾驶的吗?我可以禁用/能够这个吗?等等...

我不想创建我的应用程序并且知道在某些年份(也许)这将不再可用:)

3 个答案:

答案 0 :(得分:2)

Yes, it's standard behaviour.

不,你无法禁用它。

将来不会无效。或者,如果是这样的话,它可能只会与语言的巨大其他更改一起完成,这会使许多其他代码也被破坏。简而言之,不要担心向前兼容此功能;它不会去任何地方。

事实上,使用它是常见的。

答案 1 :(得分:1)

如果您不想创建阵列,请不要在字段名称中使用[]表示法。这将恢复到标准做法,其中重复的名称字段将相互覆盖,最后一个被发送为“赢家”。

这是PHP中的标准行为。其他语言可能会或可能不会尊重此类构造。据我所知,没有指令在PHP中启用它 - 它始终存在且无法禁用。

答案 2 :(得分:1)

当您有多个chceckbox时,可以使用这种数据管理方式,例如,如果您正在进行一些民意调查,表单等。但如果您不想使用数组样式,则可以重命名它们(checkbox1, checkbox2, checkbox3代替checkboxes[] checkboxes[] checkboxes[]