$_REQUEST、$_POST 和 $_GET 数组中的 PHP 将用变量的最后定义覆盖重复的变量名称。结果,Symfony2 表现出相同的行为。
例如给出代码。
<?php
echo "<pre>";
var_dump($_GET);
var_dump($_POST);
var_dump($_REQUEST);
echo "</pre>";
?>
<form method="post">
<input type="text" name="test1" value="1"/>
<input type="text" name="test2" value="2"/>
<input type="text" name="test2" value="3"/>
<input type="submit"/>
</form>
提交表单后,输出为
array(0) {
}
array(2) {
["test1"]=>
string(1) "1"
["test2"]=>
string(1) "3"
}
array(2) {
["test1"]=>
string(1) "1"
["test2"]=>
string(1) "3"
}
使用查询字符串调用页面,?test1=1&test2=2&test2=3
结果为:
array(2) {
["test1"]=>
string(1) "1"
["test2"]=>
string(1) "3"
}
array(0) {
}
array(2) {
["test1"]=>
string(1) "1"
["test2"]=>
string(1) "3"
}
自己解决此问题的唯一方法是将变量作为查询字符串 (GET) 传递,在这种情况下,您可以检索查询字符串并自己解析它。如果您正在处理用户输入,这可能不合适。