2013-04-28 43 views
0

register_globals设置为“off”。

phpinfo()函数:
本地值=关
主值=关闭

$var = "test"; 
function test() 
{ 
    var_dump($GLOBALS["var"]); // this prints "test".. 
    die; 
} 
test(); 

为什么我得到的$ GLOBALS [ “变种”]输出?

$test = "mytext"; 
echo $GLOBALS["test"]; // output: "mytext".. why? 
die; 

感谢您的信息!

+0

对,在你的函数中放置'global $ var;'也可以让你像使用全局变量一样使用它。 – Revent 2013-04-28 05:38:16

回答

3

因为register_globals控制$_GET,$_POST是否自动将cookie,环境和服务器参数注册为全局变量。它不禁用$GLOBALS变量;这是一个无法关闭的核心PHP机制。

+1

[register_globals](http://php.net/register_globals),以及更深入的:[使用Register Globals](http://php.net/manual/en/security.globals.php) – Wiseguy 2013-04-28 05:37:02

+0

ahh ..好,谢谢!! – 2013-04-29 04:15:28