最近我在看Joomla的代码,其中在JSession类的初始化时调用了一个内部set函数 $this->set( 'session.counter', $counter );
function set($name, $value, $namespace = 'default')
{
$namespace = '__'.$namespace; //add prefix to namespace to avoid collisions if($this->_state !== 'active') {
// @TODO :: generated error here $GLOBALS
return null;
} $old = isset($_SESSION[$namespace][$name]) ? $_SESSION[$namespace][$name] : null; if (null === $value) unset($_SESSION[$namespace][$name]);
} else {
$_SESSION[$namespace][$name] = $value;
} return $old;
}以上代码中的 $_SESSION[$namespace][$name] = $value; 语句执行完毕后,为什么$_SESSION函数成了一个globals,而不是 function set()中的局部变量啊?
function set($name, $value, $namespace = 'default')
{
$namespace = '__'.$namespace; //add prefix to namespace to avoid collisions if($this->_state !== 'active') {
// @TODO :: generated error here $GLOBALS
return null;
} $old = isset($_SESSION[$namespace][$name]) ? $_SESSION[$namespace][$name] : null; if (null === $value) unset($_SESSION[$namespace][$name]);
} else {
$_SESSION[$namespace][$name] = $value;
} return $old;
}以上代码中的 $_SESSION[$namespace][$name] = $value; 语句执行完毕后,为什么$_SESSION函数成了一个globals,而不是 function set()中的局部变量啊?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货