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问题的主要内容,如果未能解决你的问题,请参考以下文章