实际上是否可以在$ _GET和$ _POST中获取数据?这与$ _REQUEST中的内容有什么关系?
答案 0 :(得分:17)
是的,这是可能的。考虑一下这样的表格:
<form action="foobar.php?a=123&b=456" method="post">
<input type="text" name="a" value="llama">
<input type="text" name="b" value="duck">
<input type="submit" name="go" value="Submit me!">
</form>
在提交此表单时,$_GET["a"] == "123"
,$_GET["b"] == "456"
,$_POST["a"] == "llama"
,$_POST["b"] == "duck"
和$_POST["go"] == "Submit me!"
。
这与$_REQUEST
超全局的关系取决于request_order
(或较旧的variables_order
)PHP配置设置的值,正如the php.ini documentation所解释的那样。
答案 1 :(得分:2)
两者肯定都有数据......请考虑以下(非常简单)页面:
<body>
<form method="post" action="params.php?myparam=myval">
<input type="text" name="param1"></input>
<input type="submit" name="submit" value="submit" />
</form>
</body>
请注意,表单的action
包含查询字符串,方法为post
。 $_GET
包含查询字符串参数,$_POST
包含形式参数,$_REQUEST
包含两个数组中的合并参数:
array(3) {
["myparam"]=>
string(1) "myval"
["param1"]=>
string(0) ""
["submit"]=>
string(6) "submit"
}
查看request_order
以了解如何在$_REQUEST
中控制超全局值的处理。
答案 2 :(得分:1)
这是可能的。 request_order
或(如果未设置)variables_order
指令确定在$_REQUEST
中当两个密钥都设置时,哪个优先于{{1}}。
答案 3 :(得分:0)
在PHP中是可能的,因为尽管名称如此,$ _GET和$ _POST并不需要GET或POST。
实际的请求方法是什么并不重要 - 它可能是一个PUT,那些超级全局仍然会被填充。