当前位置:  开发笔记 > 编程语言 > 正文

在$ _REQUEST,$ _GET和$ _POST中哪一个最快?

如何解决《在$_REQUEST,$_GET和$_POST中哪一个最快?》经验,为你挑选了7个好方法。

哪些代码会更快?

$temp = $_REQUEST['s'];

要么

if (isset($_GET['s'])) {
  $temp = $_GET['s'];
}
else {
  $temp = $_POST['s'];
}

Pascal MARTI.. 266

$_REQUEST默认情况下,包含的内容$_GET,$_POST$_COOKIE.

但它只是一个默认值,取决于variables_order; 并且不确定您是否想要使用cookie.

如果我必须选择,我可能不会使用$_REQUEST,我会选择$_GET$_POST- 取决于我的应用程序应该做什么 (即一个或另一个,但不是两个):一般来说:

$_GET当有人您的应用程序请求数据时,您应该使用.

$_POST当有人您的应用程序推送(插入或更新或删除)数据时,您应该使用它.

无论哪种方式,性能都没有太大区别:与其他脚本相比,差异可以忽略不计.



1> Pascal MARTI..:

$_REQUEST默认情况下,包含的内容$_GET,$_POST$_COOKIE.

但它只是一个默认值,取决于variables_order; 并且不确定您是否想要使用cookie.

如果我必须选择,我可能不会使用$_REQUEST,我会选择$_GET$_POST- 取决于我的应用程序应该做什么 (即一个或另一个,但不是两个):一般来说:

$_GET当有人您的应用程序请求数据时,您应该使用.

$_POST当有人您的应用程序推送(插入或更新或删除)数据时,您应该使用它.

无论哪种方式,性能都没有太大区别:与其他脚本相比,差异可以忽略不计.


使用$ _REQUEST不会导致XSS/XSRF.不了解XSS/XSRF的细微差别会导致XSS/XSRF.只要您使用令牌缓解,就没有问题并且您可以获得使用$ _REQUEST(所有变量都在一个超全局中)的好处.由于'variables_order',我实际上在使用它之前重建$ _REQUEST基于其他超级全局.我处理$ _COOKIE,然后是$ _GET,然后是$ _POST.那样POST变量具有最高优先级,cookie变量最低,这允许我隐式修复一些错误(例如Adobe Flash和魔术引号).
+1表示性能差异的概念可以忽略不计,维护视角更重要:$ _GET和$ _POST以$ _REQUEST不能的方式传达意义.
$ _REQUEST据说(或者至少曾经)比直接使用$ _POST和$ _GET更昂贵.

2> Zee Ken..:

GET与POST

1)GET和POST都创建一个数组(例如数组(key => value,key2 => value2,key3 => value3,...)).此数组包含键/值对,其中键是表单控件的名称,值是来自用户的输入数据.

2)GET和POST都被视为$ _GET和$ _POST.这些是超级全局,这意味着它们始终可以访问,无论范围如何 - 您可以从任何函数,类或文件访问它们,而无需执行任何特殊操作.

3)$ _GET是通过URL参数传递给当前脚本的变量数组.

4)$ _POST是通过HTTP POST方法传递给当前脚本的变量数组.

什么时候使用GET?

使用GET方法从表单发送的信息对每个人都可见(所有变量名称和值都显示在URL中).GET还对要发送的信息量有限制.限制大约是2000个字符.但是,由于变量显示在URL中,因此可以为页面添加书签.这在某些情况下很有用.

GET可用于发送非敏感数据.

注意:绝不应将GET用于发送密码或其他敏感信息!

什么时候使用POST?

使用POST方法从表单发送的信息对其他人不可见(所有名称/值都嵌入在HTTP请求的正文中),并且对要发送的信息量没有限制.

此外,POST支持高级功能,例如在将文件上载到服务器时支持多部分二进制输入.

但是,由于变量未显示在URL中,因此无法为页面添加书签.


请添加一些关于REQUEST的内容.

3> gewel..:

$ _GET从查询字符串或您的URL中检索变量.>

$ _POST从POST方法中检索变量,例如(通常)表单.

$ _REQUEST是$ _GET和$ _POST的合并,其中$ _POST会覆盖$ _GET.很高兴在自我验证表格上使用$ _REQUEST进行验证.


+1这基本上就是我所教的内容.不像其他答案那样技术性,但更容易记住(来自查询字符串的`GET`,来自表单提交的`POST`).

4> Daniel Bruce..:

我建议使用$_POST$_GET明确.

无论如何,在正确的网站设计中使用$ _REQUEST应该是不必要的,并且它带来一些缺点,例如让您更容易受到CSRF/XSS攻击以及在URL中存储数据所带来的其他愚蠢.

速度差异应该是最小的.



5> Steven Schla..:

使用REQUEST.没有人关心这种简单操作的速度,而且代码更清晰.


很好的答案,但需要注意的是,在许多情况下,应根据情况选择GET或POST,而不是使用任何一种.
_REQUEST更卫生的说法需要详细阐述.
为什么与$ _GET或$ _POST相比,$ _REQUEST更清洁?$ _REQUEST在场景后面执行相同的逻辑,并且选择GET或POST可以提供更多控制.
你没关系,你是对的,但在我看来,使用`$ _REQUEST`是错误的结论.看我的回答.
如果您希望用户能够复制URL并执行相同的操作,则建议使用GET,即(它的URL像'google.com/q=searchWord'这样可见,而POST应该用于将数据发布到网站上只能插入一次,否则将有大量数据处于活动状态,并且用户不应像在数据库中插入数据,登录等那样保留网址。

6> Franz..:

别担心.但是你仍然应该使用第二种解决方案(加上对这些变量不存在的额外检查),因为存在安全问题$_REQUEST(因为$_GET并且$_POST不是该数组的唯一源).

$_REQUEST我相信有一篇关于昨天问题的帖子.让我去找吧.

编辑:哦,好吧,不是直接的帖子,但无论如何它在这里:http://kuza55.blogspot.com/2006/03/request-variable-fixation.html



7> Kristina Bro..:
if (isset($_GET['s'])) {
  $temp = $_GET['s'];
}
else {
  $temp = $_POST['s'];
}

Use that because it is safer and it won't make noticeable speed difference

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有