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


What's the directive that store into an array a list of [] variables

我在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']来访问这个数组。

我想知道这个行为:它是一个标准的行为吗?它是由指令引导的吗?我可以禁用/启用这个吗?等等…

我不喜欢创建我的应用程序,并且知道在某些年份(可能)这将不再可用:)

是的,这是标准行为。

不,你不能禁用它。

它将来不会无效。或者,如果是的话,它可能只会伴随着对语言的大量其他更改,这也会导致许多其他代码损坏。简而言之,不要担心此功能的前向兼容性;它哪儿也去不了。

如果你不想创建一个数组,那么不要在你的字段名中使用[]符号。这将恢复到标准实践,重复的名称字段将相互覆盖,最后一个被发送的是"赢家"。

这是PHP的标准行为。其他语言可能支持也可能不支持这样的结构。据我所知,在PHP中没有指令来启用它——它总是存在的,不能被禁用。

当您有多个复选框时,您可以使用这种类型的数据管理,例如,如果您正在进行一些投票,表单等。但是如果你不想使用数组样式,你可以重命名它们(用checkbox1, checkbox2, checkbox3代替checkboxes[] checkboxes[] checkboxes[])