我对PHP中的这些超级全局变量($_POST
,$_GET
和$_REQUEST
(有点困惑。在哪种情况下我需要在 PHP 中使用这些变量,这三者代表的主要区别是什么?
$_POST 是一个通过 HTTP POST 方法传递给当前脚本的变量关联数组,当在请求中使用 application/x-www-form-urlencoding 或 multipart/form-data 作为 HTTP 内容类型时。当您将大型数据发送到服务器或拥有密码,信用卡详细信息等敏感信息时,您可以使用
$_GET 是通过 URL 参数传递给当前脚本的变量的关联数组。 当数据量很少时,您可以使用,它主要用于分页,页码显示在URL中,您可以使用$ _GET轻松地从URL获取页码
$_REQUEST 是一个"超全局"或自动全局变量。这仅意味着它在整个脚本的所有范围内都可用。它是一个关联数组,默认情况下包含 $_GET、$_POST 和 $_REQUEST 的内容(取决于request_order=
有 2 种方法可以将 HTML 表单数据从一个页面发送到另一个页面或将 HTML 页面发送到服务器端(在 PHP 中(。
-
POST
这是一种使用数据包发送数据的方法,该数据包对Web浏览器上的任何用户都不可见。 与GET方法相比,它是安全的。
-
GET
这是一种使用URL发送数据的方法,该URL在任何Web浏览器的地址栏中对用户可见。因此,它作为 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.
好吧,为了更好地了解,请访问 GET vs. POST:
1(
$_GET
和$_POST
都创建一个数组,例如array( key => value, key2 => value2, key3 => value3, ...)
.此数组保存键/值对,其中键是表单控件的名称,值是来自用户的输入数据。2(
GET
和POST
都被视为$_GET
和$_POST
。这些是超全局变量,这意味着无论范围如何,它们始终是可访问的 - 您可以从任何函数、类或文件访问它们,而无需执行任何特殊操作。3(
$_GET
是通过 URL 参数传递给当前脚本的变量数组。4(
$_POST
是通过 HTTP POST 方法传递给当前脚本的变量数组。----而
$_REQUEST
包含$_POST
、$_GET
和$_COOKIE
。