标题中的问题.
当所有3个$_GET[foo],$_POST[foo]以及$_COOKIE[foo] exist?其中哪一个被包括在内时会发生什么$_REQUEST?
Ric*_*haw 53
我永远不会说.
如果我想通过各种方法设置某些东西,我会为每个方法编写代码以提醒自己我是这样做的 - 否则你最终可能会被覆盖而没有意识到.
不应该像这样工作:
$ _GET =非破坏性操作(排序,记录操作,查询)
$ _POST =破坏性操作(删除,更新)
$ _COOKIE =琐碎的设置(样式表首选项等)
$ _SESSION =非平凡设置(用户名,登录?,访问级别)
有时您可能希望使用几种不同的方式调用相同的脚本.我想到了表单提交和AJAX调用.然而,在大多数情况下,最好是明确的.
另请参阅http://docs.php.net/manual/en/ini.core.php#ini.request-order,了解如果存在名称冲突,不同的变量源如何相互覆盖.
$_REQUEST如果数据可以来自其中任何一个,则只是防止您测试 post、get 和 cookie 的快捷方式。
有一些陷阱:
$_REQUEST。然而,如果您知道自己在做什么,那么这只是另一个方便的PHP技巧。
如果我想快速更新可能来自多个来源的变量,我会使用它,例如:
在您的控制器中,决定提供哪个页面,而不检查请求是否来自表单操作或超文本链接。
检查会话是否仍处于活动状态,无论会话 ID 的传输方式如何。