君山 发表于 2020-9-7 20:25:21

Discuz setglobal 和 getglobal 函数 设置和读取全局变量

本帖最后由 君山 于 2020-9-7 20:32 编辑

请恕老衲才疏学浅 , 这俩玩意儿实在不知道是干嘛的 , 有人知道请扣个1告知一下感激不尽!!

猜测是个全菊花的啥函数!
上面就当老衲放了个P ,现在我们言归正传;



/**
* 设置全局 $_G 中的变量
* @global <array> $_G
* @param <string> $key 键
* @param <string> $value 值
* @param <mix> $group 组(准备废弃,尽量不用)
* @return true
*
* @例子
* setglobal('test', 1); // $_G['test'] = 1;
* setglobal('config/test/abc') = 2; //$_G['config']['test']['abc'] = 2;
*
*/

function setglobal($key , $value, $group = null) {
        global $_G;
        $key = explode('/', $group === null ? $key : $group.'/'.$key);
        $p = &$_G;
        foreach ($key as $k) {
                if(!isset($p[$k]) || !is_array($p[$k])) {
                        $p[$k] = array();
                }
                $p = &$p[$k];
        }
        $p = $value;
        return true;
}

/**
* 获取全局变量 $_G 当中的某个数值
* @global$_G
* @param <type> $key
* @param <type> $group 计划废弃的参数,不建议使用
* @return <mix>
*
* @例子
* $v = getglobal('test'); // $v = $_G['test']
* $v = getglobal('test/hello/ok');// $v = $_G['test']['hello']['ok']
*/

function getglobal($key, $group = null) {
        global $_G;
        $key = explode('/', $group === null ? $key : $group.'/'.$key);
        $v = &$_G;
        foreach ($key as $k) {
                if (!isset($v[$k])) {
                        return null;
                }
                $v = &$v[$k];
        }
        return $v;
}


页: [1]
查看完整版本: Discuz setglobal 和 getglobal 函数 设置和读取全局变量