如果提交的参数通过url办法,那么可以拿到,不管是get还是post,如果是通过要求体(如post的要求体)提交的数据,那么数据格式必须是 form-data 格式。也便是说要求体的数据格式不是 form-data 的话,$_REQUEST 是获取不到的。
<?php$name = $_REQUEST['name'];$age = $_REQUEST['age'];echo $name.'年事'.$age.'岁';
$_REQUEST包括所有$_GET、$_POST和$_COOKIE几个数组中的数据元素。
如果这几个数组中的元素的键涌现相同的,PHP将按照php.ini配置文件的变量赋值顺序依次对$_REQUEST数组中该关键字指定的元素进行重写。
在php.ini中,G代表$_GET,P代表$_POST,C代表$_COOKIE,E代表$_ENV,S代表$_SERVER。
按照配置文件的顺序,后面涌现的数据会覆盖前面写入的数据。php7中默认的数据写入顺序是GP,因此,在关键字相同的情形下,POST包含的数据会覆盖GET中的数据。
; This directive determines which super global data (G,P & C) should be; registered into the super global array REQUEST. If so, it also determines; the order in which that data is registered. The values for this directive; are specified in the same manner as the variables_order directive,; EXCEPT one. Leaving this value empty will cause PHP to use the value set; in the variables_order directive. It does not mean it will leave the super; globals array REQUEST empty.; Default Value: None; Development Value: "GP"; Production Value: "GP"; http://php.net/request-orderrequest_order = "GP"
$_GET、$_POST
$_GET 和 $_POST 实在和get或post要求没什么关系
$_GET 用于获取url上的参数
$_POST 用于获取要求体中的参数
所在post要求中也可以利用 $_GET 全局变量来获取url上的参数。
在post要求中,通过 $_REQUEST 参数获取同名的参数,比如在url上添加age,同时在要求体中也添加age参数,那么url上的该age参数会被要求体中的age参数覆盖掉,
<?php$name = $_POST['name'];$age = $_POST['age'];$trueAge = $_GET['age'];$reqAge = $_REQUEST['age'];echo $name.'年事'.$age.'岁'.', 实际年事'.$trueAge.'<br>';echo '终极的年事是:'.$reqAge;