PHP中的“EGPCS”是什么意思?

php
2022-08-30 20:46:58

我在.那是什么意思?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"

答案 1

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

设置 EGPCS(环境、获取、发布、Cookie 和服务器)变量解析的顺序。例如,如果 variables_order 设置为 “SP”,则 PHP 将创建超全局和 ,但不创建 、 和 。设置为 “” 表示不会设置任何超全局。$_SERVER$_POST$_ENV$_GET$_COOKIE

另请注意(再次引用):

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

我想这个选项在不久前更重要,当时register_globals仍然是使用的东西,正如同一页所述(引用):

如果已弃用的指令已打开(从 PHP 6.0.0 开始删除),则 variables_order 还会配置 ENV、GET、POST、COOKIE 和 SERVER 变量在全局范围内填充的顺序。因此,例如,如果variables_order设置为“EGPCS”,则启用register_globals,并且两者都已设置,则将包含值,因为在我们的示例指令值中,P位于G之后。register_globals$_GET['action']$_POST['action']$action$_POST['action']

我不明白我可以添加什么;这有帮助吗?
或者这是导致您出现问题的东西吗?


答案 2

上面接受的答案是好的。但这里需要注意的另一点是,如果未设置这些标志中的任何一个,则该变量在脚本运行时将为空,即如果variables_order设置为“GPCS”,则$_ENV变量将始终为空数组。以艰难的方式发现了这一点。


推荐