函数原型:
./source/function/function_core.php 第55行开始:
- function setglobal($key , $value, $group = null) {
- global $_G;
- $k = explode('/', $group === null ? $key : $group.'/'.$key);
- switch (count($k)) {
- case 1: $_G[$k[0]] = $value; break;
- case 2: $_G[$k[0]][$k[1]] = $value; break;
- case 3: $_G[$k[0]][$k[1]][$k[2]] = $value; break;
- case 4: $_G[$k[0]][$k[1]][$k[2]][$k[3]] = $value; break;
- case 5: $_G[$k[0]][$k[1]][$k[2]][$k[3]][$k[4]] =$value; break;
- }
- return true;
- }
- function getglobal($key, $group = null) {
- global $_G;
- $k = explode('/', $group === null ? $key : $group.'/'.$key);
- switch (count($k)) {
- case 1: return isset($_G[$k[0]]) ? $_G[$k[0]] : null; break;
- case 2: return isset($_G[$k[0]][$k[1]]) ? $_G[$k[0]][$k[1]] : null; break;
- case 3: return isset($_G[$k[0]][$k[1]][$k[2]]) ? $_G[$k[0]][$k[1]][$k[2]] : null; break;
- case 4: return isset($_G[$k[0]][$k[1]][$k[2]][$k[3]]) ? $_G[$k[0]][$k[1]][$k[2]][$k[3]] : null; break;
- case 5: return isset($_G[$k[0]][$k[1]][$k[2]][$k[3]][$k[4]]) ? $_G[$k[0]][$k[1]][$k[2]][$k[3]][$k[4]] : null; break;
- }
- return null;
- }
使用方法非常简单: 如获取$_G['member']['uid'] (用户的uid) ,可以这样书写:$uid = getglobal('uid', 'member');
这在X里面是个非常贴心的设计,相比做过uchome开发的人一定对这个会产生共鸣的,uchome中,大家都习惯使用$_SGLOBAL['member']['uid'],但是$_SGLOBAL这个全局变量很庞大,使用起来可能会写非常长的数组来获取自己想要得到的东西。代码写的多了以后会发现,有大量的数组堆叠。不适合与二次开发以后的二次修改。
上面的贴心设计基本上解决了这个。呵呵。