我对 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=)
有两种方法可以将 HTML 表单数据从一个页面发送到另一个页面或将 HTML 页面发送到服务器端(在 PHP 中)。
POST这是一种使用数据包发送数据的方法,该数据包对网络浏览器上的任何用户都不可见。与 GET 方法相比,它是安全的。
GET这是一种使用 URL 发送数据的方法,该 URL 在任何网络浏览器的地址栏中对用户可见。因此,它不像 POST 方法那样安全。
现在,共有三个超级全局变量可以在 PHP 中捕获这些数据。
$_POST: 它可以捕获使用 POST 方法发送的数据。$_GET: 它可以捕获使用 GET 方法发送的数据。$_REQUEST:它可以捕获使用 POST 和 GET 方法发送的数据。还可以使用$_GET超全局变量收集从提交按钮发送到 URL 中的数据。
区别在于:
$_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)