"EGPCS"在PHP中意味着什么?

cod*_*rex 13 php

我在下面找到了以下代码php.ini.那是什么意思?

而"PHP注册" - 这是什么?

; This directive describes the order in which PHP registers GET, POST, Cookie,
; Environment and Built-in variables (G, P, C, E & S respectively, often
; referred to as EGPCS or GPC).  Registration is done from left to right, newer
; values override older values.
variables_order = "EGPCS"

Pas*_*TIN 26

关于该指令的手册可能会对您有所帮助:( variables_order引用):

设置EGPCS(Environment,Get,Post,Cookie和Server)变量解析的顺序.例如,如果是variables_order设置为"SP"然后PHP将创建超全局变量 $_SERVER$_POST,但不能创建 $_ENV,$_GET$_COOKIE.设置为""表示不会设置超级全局.

另请注意(再次引用):

内容和顺序$_REQUEST也受此指令的影响.

我想这个选项在前一段时间更为重要,当register_globals仍然使用时,因为同一页面状态(引用):

如果已打开deprecated register_globals 指令(从PHP 6.0.0开始删除),那么variables_order还会配置在全局范围内填充ENV,GET,POST,COOKIE和SERVER变量的顺序.因此,举例来说,如果是variables_order设置为"EGPCS",启用了register_globals,无一不$_GET['action']$_POST['action']设置,然后$action 将包含的价值 $_POST['action']为P来摹后,在我们的例子指导价值.

我看不出我能添加什么; 这有帮助吗?
或者这是否会导致您出现问题?

  • 如果你有一个变量名称与在$ _GET和$ _COOKIE中传递的方式相同,当将$ _GET,$ _POST,$ _COOKIE,...合并到$ _REQUEST时,PHP必须知道必须使用哪一个首先......哪一个会覆盖第一个.今天用的不多(至少,如果我们不使用$ _REQUEST),但是当使用register_globals时,依赖于这个顺序在我们的变量中设置正确的值并不罕见.;; 你可以在$ _GET中有一个'action',在$ _COOKIe中有另一个'action'; 但是你只能在$ _REQUEST中有一个:它会是哪一个?;-) (2认同)

Mar*_*rco 8

上面接受的答案是好的.但另一个需要注意的重点是,如果未设置任何这些标志,则在脚本运行时该变量将为空,即如果variables_order设置为"GPCS",则$ _ENV变量将始终为空数组.很难找到这个.