10

我有一个看起来像这样的 HTML 下拉菜单

<select name='not working random test!'>
<option value='0'>Select quantity:</option>
<option value='1'>1 room</option>
<option value='2'>2 rooms</option>
</select>

如果我正在 var_dumping $_POST,我是否有可能看到类似这样的东西?

["not_working_random_test!"]=>
string(1) "1"

这给我的引擎造成了一些问题:我希望我为选择指定的名称是相同的。为什么这没有发生?

4

1 回答 1

33

这是标准的 PHP 行为。从文档中:

变量名中的点和空格被转换为下划线。例如<input name="a.b" />变成$_REQUEST["a_b"].


PHP 转换为(下划线)的字段名称字符的完整列表_如下(不仅仅是点):

  • chr(32) (空格)
  • chr(46) .(点)
  • chr(91) [(左方括号)
  • chr(128) - chr(159)(各种)

如果同时存在左方括号和右方括号,则它们不会被转换,但 $_POST 元素会变为数组元素。

<input name='hor[se'>
<input name='hor[se]'>

会变成:

$_POST['hor_se'];
$_POST['hor']['se'];

::参考

于 2013-06-13T16:35:09.190 回答