做大相册接口的时候,要传递图片的host过来,程序这边用 $_REQUEST['host'] 获得。在浏览器测试了一下,发现得到的并非是url参数传过来的host。测试发现时cookie存在键为host的值,才醒起是cookie中的host覆盖了get中的host。
$_REQUEST 包含 GET/POST/Cookie 。在键值相同时默认是 POST覆盖GET,COOKIE覆盖POST或GET。
这个默认的顺序也可以改,在 php.ini 中查找variables_order,会看到类似
variables_order = "EGPCS"
这就是php注册变量的顺序,E代表$_ENV,G代表$_GET,P代表$_POST,C代表$_COOKIE,S代表$_SERVER。在register_globals为on时,新的值会覆盖之前的值。例如在register_globals为on时,可以直接用$key代替$_GET['key']。同样这个顺序的gpc也作用在$_REQUEST中。
如果你禁止了 register_globals,但又想用到一些全局变量,可以用 extract...