当我提交表单时,Codigniter会将包含点(。)的输入名称替换为下划线(_)。这是一个简单的例子:
<form method="post">
<input type="text" name="client.firstname" />
<input type="text" name="client.lastname" />
<input type="submit" />
</form>
$_POST
现在包含:
Array
(
[client_firstname] => xxxxx
[client_lastname] => yyyyy
)
所以client.firstname
没有理由成为client_firstname
?
你知道发生了什么吗?
答案 0 :(得分:2)
这不是CI这样做,而是PHP本身 - 它是$ _POST / $ _ GET /等之前的“旧时代”的残余,当外部参数直接导入全局变量范围时;因为变量名在PHP中不能包含.
,因为它也是连接运算符。
这也有记录,http://php.net/manual/en/language.variables.external.php:
注意:强>
变量名中的点和空格将转换为下划线。例如<input name="a.b" />
变为$ _REQUEST [“a_b”]。