哪些代码会更快?
$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
当有人向您的应用程序推送(插入或更新或删除)数据时,您应该使用它.
无论哪种方式,性能都没有太大区别:与其他脚本相比,差异可以忽略不计.
$_REQUEST
默认情况下,包含的内容$_GET
,$_POST
和$_COOKIE
.
但它只是一个默认值,取决于variables_order
; 并且不确定您是否想要使用cookie.
如果我必须选择,我可能不会使用$_REQUEST
,我会选择$_GET
或$_POST
- 取决于我的应用程序应该做什么 (即一个或另一个,但不是两个):一般来说:
$_GET
当有人从您的应用程序请求数据时,您应该使用.
$_POST
当有人向您的应用程序推送(插入或更新或删除)数据时,您应该使用它.
无论哪种方式,性能都没有太大区别:与其他脚本相比,差异可以忽略不计.
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中,因此无法为页面添加书签.
$ _GET从查询字符串或您的URL中检索变量.>
$ _POST从POST方法中检索变量,例如(通常)表单.
$ _REQUEST是$ _GET和$ _POST的合并,其中$ _POST会覆盖$ _GET.很高兴在自我验证表格上使用$ _REQUEST进行验证.
我建议使用$_POST
和$_GET
明确.
无论如何,在正确的网站设计中使用$ _REQUEST应该是不必要的,并且它带来一些缺点,例如让您更容易受到CSRF/XSS
攻击以及在URL中存储数据所带来的其他愚蠢.
速度差异应该是最小的.
使用REQUEST.没有人关心这种简单操作的速度,而且代码更清晰.
别担心.但是你仍然应该使用第二种解决方案(加上对这些变量不存在的额外检查),因为存在安全问题$_REQUEST
(因为$_GET
并且$_POST
不是该数组的唯一源).
$_REQUEST
我相信有一篇关于昨天问题的帖子.让我去找吧.
编辑:哦,好吧,不是直接的帖子,但无论如何它在这里:http://kuza55.blogspot.com/2006/03/request-variable-fixation.html
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