可能重复:
PHP用下划线替换空格
示例:test.php?foo.bar=1
print_r($_GET);
// Array ( [foo_bar] => 1 )
这里引用了PHP手册
传入变量名称中的点
通常,PHP不会更改变量的名称传递到脚本中。但是,需要注意的是(句点,句号(不是PHP变量名中的有效字符。原因如下:
<?php $varname.ext; /* invalid variable name */ ?> Now, what the
解析器看到一个名为$varname的变量,后面跟着字符串串联运算符,后面跟着空字符串(即未加引号与任何已知关键字或保留字不匹配的字符串('ext'。显然,这并没有达到预期的结果。因此需要注意的是,PHP将自动替换带下划线的传入变量名。
如果设置了register_globals指令,$_GET中的数组键必须用作变量名,php变量名中不允许使用点、空格以及其他各种字符。由于担心您有该指令集,php会替换那些"无效"字符
根据问题准确的PHP手册信息:
注意:变量名称中的点和空格将转换为下划线。例如,变为$_REQUEST["a_b"]。
来源:http://php.net/manual/en/language.variables.external.php