PHP $_REQUEST问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP $_REQUEST问题相关的知识,希望对你有一定的参考价值。

请问在php中$_REQUEST与$_POST $_GET有什么区别 什么时候该用哪个 说详细点 谢谢 别复制网上的 最好是用自己的观点 最通俗易通的方式说明下 谢谢

其实这是在PHP的配置文件里面设置的,让我们来看一下php.ini这个配置文件,在第466行左右有如下内容:
; This directive describes the order in which PHP registers GET, POST, Cookie,
; Environment and Built-in variables (G, P, C, E & S respectively, often
; referred to as EGPCS or GPC). Registration is done from left to right, newer
; values override older values.
variables_order = "EGPCS"

这个EGPCS就是说明用$_REQUEST数组获取内容的优先级,其字母的含义分别代表为:E代表$_ENV,G代表$_GET,P代表$_POST,C代表$_COOKIE,S代表$_SESSION。后面出现的数据会覆盖前面写入的数据,其默认的数据写入方式就是EGPCS,所以POST包含的数据将覆盖GET中使用相同关键字的数据。
参考技术A $_REQUEST可以获取POST和GET方式的数据,也就是说$_REQUEST比$_POST和$_GET的适用范围要广,$_POST只能获取POST,$_GET只能获取GET,而用$_REQUEST两个都可以 参考技术B $_GET 值能获取从URL上传递过来的值。

而$_REQUEST可以获取包含$_GET $_COOKIE $_POST在内的所有值。

不晓得这样你明白不?

PHP 全局变量 $_REQUEST 的分析

PHP 中的 $_REQUEST 变量是指 HTTP Request 变量。

$_REQUEST 变量中包含哪些值,需要根据 php.ini 中的 request_order 设置,我测试的环境是 PHP 5.5.12 和 php 5.6.9,其中 request_order 的设置都是:

request_order = "GP"

G 代表 $_GET,P 代表 $_POST

除了 $_GET 和 $_POST,还可以添加 C($_COOKIE)

 

当 request_order = "GP" 时,PHP 首先会查询 get 变量,然后再查询 post 变量,也就是说,如果出现 get 的请求变量和 post 的请求变量重名时, post 变量的值会覆盖 get 变量的值。

 

例,把 php.ini 中 request_order 的值设置为 "GPC",即如果出现同名的变量, Cookie 中变量的值会覆盖 get 和 post 请求中同名变量的值:

访问 http://127.0.0.3/php/phpcookbook/form/$_REQUEST.php?name=dee&age=28

<?php
setcookie(‘name‘, ‘emperor‘);
echo ‘<pre>‘;
print_r($_REQUEST);

输出:

Array
(
    [name] => emperor
    [age] => 28
)

 

以上是关于PHP $_REQUEST问题的主要内容,如果未能解决你的问题,请参考以下文章

PHP $_REQUEST问题

php中的$_REQUEST()函数怎么用

php中的$_REQUEST()函数怎么用

PHP 中TP5 Request 请求对象的实例详解

php PHP __ $ _ POST / $ _GET / $ _REQUEST

部署到 5.2.4 后 PHP 脚本未解码 $_REQUEST[] 中的 URL 参数(存在 %20 个值)