php $GLOBALS 详解

引用全局作用域中可用的全部变量

默认包含 POST GET COOKIE FILES


_REQUEST[]
$_REQUEST包含了$_GET、$_POST、$_COOKIE的所有内容
$_GET、$_POST、$_COOKIE在$_REQUEST中都有一个副本。改变$_REQUEST的值不影响$_GET等,反之亦然。
在同名的情况下,优先级:$_GET <  $_POST < $_COOKIE


在php.ini中有一个参数设置register_globals,它用于设置ENV,GET,POST,COOKIE,SERVER是否为全局变量,即上述五种变量是否可以直接在程序中使用。例如,服务器默认变量HTTP_USER_AGENT,若register_globals设置为on就表示各变量均为全局变量,在程序中就可以直接使用。例如:
    echo $HTTP_USER_AGENT;
可以显示用户相关信息。出于安全性的考虑,从PHP4.2.0后register_globals默认为off,不让程序员直接使用这些变量。如果要使用这些变量,就必须借助$_ENV、 $GET、$_POST、$_Cookie和$_SERVER数组取得变量内容。例如,取得HTTP_USER_AGENT就必须借助_SERVER数组。
Echo $_SERVER[‘HTTP_USER_AGNET’];


php.ini中相关配置选项


variables_order string
设定 EGPCS(Environment,GET,POST,Cookie,Server)变量解析的顺序。默认设定为“EGPCS”。举例说,将其设为“GP”,会导致PHP 完全忽略环境变量,cookies 和 server 变量,并用 GET 方法的变量覆盖 POST 方法的同名变量。 
参见 register_globals。 


request_order string
This directive describes the order in which PHP registers GET, POST and Cookie variables into the _REQUEST array.
Registration is done from left to right, newer values override older values.
If this directive is not set, variables_order is used for $_REQUEST contents. 


auto_globals_jit boolean
启用后,SERVER 和 ENV 变量在他们第一次使用后 (Just In Time) 便被创建,而不是等到脚本开始运行时。如果这些变量没有在脚本总使用,启用这个变量会提高服务器性能。 
要使此选项有效,PHP 配置选项 register_globals, register_long_arrays, 和 register_argc_argv必须禁用。 


register_globals boolean
决定是否将 EGPCS(Environment,GET,POST,Cookie,Server)变量注册为全局变量。 
PHP » 4.2.0开始,本选项默认为 off。 
相关信息请阅读安全一章中的使用 register_globals。
请注意 register_globals不能在运行时设定(ini_set()),尽管如以上说明在主机允许时可以用 .htaccess。一个 .htaccess 项目的例子:php_flag register_globals off。 

Note: 
register_globals受 variables_order选项的影响。 

当设置为On时 $GLOBALS 中不但包含了 EGPCS 还有 REQUEST


gpc_order string
设定 GET/POST/COOKIE 变量解析的顺序,默认为“GPC”。举例说,将其设为“GP”,会导致 PHP 完全忽略 cookie 变量,并用 GET 方法的变量覆盖 POST 方法的同名变量。 
Note: 
本选项不能用于 PHP 4。用 variables_order 替代之。 

更多参见 手册 附录 - php.ini核心配置选项说明

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值