默认的 $_REQUEST 会获取 $_POST, $_GET, $_COOKIE的数据,
这些可以通过查看 php.ini来确认:
由上图可以看出,获取的内容是通过 variables_order 和 request_order 来决定的,
EGPCS 的意思:
E ---- $_ENV
G ---- $_GET
P ----- $_POST
C ----- $_COOKIE
S ---- $_SERVER
所以 $_REQUEST可以获取上面配置对应的方法的内容,但是在某些特殊的情况,$_REQUEST 的值会为空:
当在调用 $_REQUEST 之前修改了原来的数据:
<?php $_GET['foo'] = 'a'; $_POST['bar'] = 'b'; var_dump($_GET); // Element 'foo' is string(1) "a" var_dump($_POST); // Element 'bar' is string(1) "b" var_dump($_REQUEST); // Does not contain elements 'foo' or 'bar'