我有一个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_dump $_POST,我看到这样的东西?
["not_working_random_test!"]=>
string(1) "1"
这会给我的引擎带来一些麻烦:我希望我为选择指定的名称是相同的。为什么这种情况没有发生?
这是标准的PHP行为。来自文档:
变量名中的点和空格被转换成下划线。例如,
<input name="a.b" />
变成了$_REQUEST["a_b"]
。
PHP转换为_
(下划线)的字段名字符的完整列表如下(不仅仅是点):
- chr(32)
(space)
- chr(46)
[
(dot) - chr(91) CC_6(右方括号)
- chr(128) - chr(159)(各种)
如果同时存在左方括号和右方括号,则不转换它们,但$_POST元素成为数组元素。
<input name='hor[se'>
<input name='hor[se]'>
将成为:
$_POST['hor_se'];
$_POST['hor']['se'];
::引用