使用$_GET和$_POST接收传递来的数据有一个问题,就是程序必须知道上传来的数据具体使用哪种方法。但实际上,无论是哪种方法,都是传递数据给WEB应用程序,它们的目的是一样的。$_REQUEST数组屏蔽了这些细节,它封装了$_GET、$_POST、$_FILE和$_COOKIE四个数组的内容,使我们对这些数据可以一视同仁。事实上,在JSP中,GET和POST的变量就是统一使用request.getParameter()方法来接收,只不过PHP中的$_REQUEST数组又封装了Cookie的内容。当使用$_REQUEST数组后,上面的例子可以简化成这样:
<!-- request.php文件 -->
<?php
if($_REQUEST['post']) {
foreach($_REQUEST as $index = > $value) echo "$_REQUEST[$index] = $value", "<BR>";
}
?>
<form action="request.php?id=juxugongzi&password=adsl" method="post">
<label for="id">账号:</label><input type="text" name="id">
<label for="password">密码:</label><input type="text" name="password">
<input type="submit" name="post" value="提交">
</form>
不过,使用$_REQUEST数组是一定要注意,几种数据中的变量名不要冲突,尤其要注意的是$_COOKIE,它的数据不使用过客户端来设置的。