$_POST、$_GET 和 $_REQUEST 之间有什么区别?

10 php global-variables

我对 PHP 中的这些超级全局变量 ( $_POST, $_GET, 和$_REQUEST)感到有些困惑。在什么情况下我需要在 PHP 中使用这些变量,这三个代表的主要区别是什么?

小智 15

$_POST是在使用 application/x-www-form-urlencoded 或 multipart/form-data 作为请求中的 HTTP Content-Type 时通过 HTTP POST 方法传递给当前脚本的变量的关联数组。当您向服务器发送大量数据或者您有密码、信用卡详细信息等敏感信息时,您可以使用

$_GET是通过 URL 参数传递给当前脚本的变量的关联数组。数据量少时可以使用,主要用于分页,url中显示页码,可以很容易地使用$_GET从URL中获取页码

$_REQUEST是“超全局”或自动全局变量。这只是意味着它在整个脚本的所有范围内都可用。它是一个关联数组,默认情况下包含 $_GET、$_POST和 $_COOKIE 的内容(取决于request_order=


Pan*_*tis 8

有两种方法可以将 HTML 表单数据从一个页面发送到另一个页面或将 HTML 页面发送到服务器端(在 PHP 中)。

  1. POST

这是一种使用数据包发送数据的方法,该数据包对网络浏览器上的任何用户都不可见。与 GET 方法相比,它是安全的。

  1. GET

这是一种使用 URL 发送数据的方法,该 URL 在任何网络浏览器的地址栏中对用户可见。因此,它不像 POST 方法那样安全。

现在,共有三个超级全局变量可以在 PHP 中捕获这些数据。

  1. $_POST: 它可以捕获使用 POST 方法发送的数据。
  2. $_GET: 它可以捕获使用 GET 方法发送的数据。
  3. $_REQUEST:它可以捕获使用 POST 和 GET 方法发送的数据。

还可以使用$_GET超全局变量收集从提交按钮发送到 URL 中的数据。


May*_*eyz 5

区别在于:

$_GET retrieves variables from the querystring, or your URL.>

$_POST retrieves variables from a POST method, such as (generally) forms.

$_REQUEST is a merging of $_GET and $_POST where $_POST overrides $_GET.
Run Code Online (Sandbox Code Playgroud)

  • 实际上,“$_REQUEST”行为是由“request_order”和“variables_order”配置指令决定的。 (2认同)