日期:2014-05-17  浏览次数:20433 次

关于 global 的疑问!
我发现很多程序包括dede 这种,都喜欢在一个函数里声明一个 global 的变量,但是我找遍了整个站点,也没见外部定义过的同名全局变量,

例如以下例子:


function SetVar($k,$v)
{
global $_vars;
if(!isset($_vars[$k]))
{
$_vars[$k] = $v;
}
}

function GetVar($k)
{
global $_vars;
return isset($_vars[$k]) ? $_vars[$k] : '';
}

这里 $_vars; 在 SetVar 函数里第一次定义, 是否意味着,这里就已经定义了一个全局变量,然后下面的 GetVar 函数

的 $_var 和其他地方的 $_var 都是这同一个 全局变量?

这么做有什么意义?





------解决方案--------------------
global时候如果这个变量不在是会创建为全局变量的。
------解决方案--------------------
就是把一个变量申明为全局的,整个项目在运行中这个变量自始至终都保持唯一性!
------解决方案--------------------
通常都定义在入口页面或者变量统一定义的页面。

这是声明,不是定义。php所有的变量都有可能成为全局变量
------解决方案--------------------
探讨
我发现很多程序包括dede 这种,都喜欢在一个函数里声明一个 global 的变量,但是我找遍了整个站点,也没见外部定义过的同名全局变量,

例如以下例子:


function SetVar($k,$v)
{
global $_vars;
if(!isset($_vars[$k]))
{
$_vars[$k] = $v;
}
}

function GetVar($k……