我有一个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"
这引起了我的引擎的一些麻烦:我希望我为select指定的名称是相同的。为什么不发生这种情况?
答案 0 :(得分:23)
这是标准的PHP行为。来自documentation:
变量名中的点和空格将转换为下划线。例如,
<input name="a.b" />
变为$_REQUEST["a_b"]
。
PHP转换为_
(下划线)的字段名称字符的完整列表如下(不仅仅是点):
(空格).
(点)[
(方括号)如果两者存在一个打开和一个右方括号,它们不会被转换,但$ _POST元素将成为一个数组元素。
<input name='hor[se'>
<input name='hor[se]'>
将成为:
$_POST['hor_se'];
$_POST['hor']['se'];
:: Reference