codeigniter CI 框架 在helper 中 使用 全局变量 方法
如果你的helper 像这样
$aa = 'test';
function test{
global $aa;
echo $aa; //not worked
}
因为 CI框架 会把$GLOBALS这个全局数组所有变量注销掉 所以使用不了全局数组
详情 可以看system/input.php
查找 function _sanitize_globals() 既可以看到注销的全局数组
所以 需要像这样使用全局数组
首先 在application 中 config 下 写一个配置文件 然后
名字为sglobal.php
$config['SGLOBAL'] = array(
'i' => 0,
'block_search' => array(),
'block_replace' => array(),
'sub_tpls'=> array(),
);
在你的helper中这样使用
//更改全局数组值
$CI =& get_instance();
//得到数组
$_SGLOBAL = ($CI->config->item('SGLOBAL'));
//处理数组中的数据
$_SGLOBAL['i']++;
//设置数组的值
$CI->config->set_item('SGLOBAL',$_SGLOBAL);
然后在 其它任意函数内 使用
$CI =& get_instance();
//得到数组
$_SGLOBAL = ($CI->config->item('SGLOBAL'));
var_dump($_SGLOBAL);
便可以看到 你的 i 变化了 累加了1
echo $aa; //not worked
}
因为 CI框架 会把$GLOBALS这个全局数组所有变量注销掉 所以使用不了全局数组
详情 可以看system/input.php
查找 function _sanitize_globals() 既可以看到注销的全局数组
所以 需要像这样使用全局数组
首先 在application 中 config 下 写一个配置文件 然后
名字为sglobal.php
$config['SGLOBAL'] = array(
'i' => 0,
'block_search' => array(),
'block_replace' => array(),
'sub_tpls'=> array(),
);
在你的helper中这样使用
//更改全局数组值
$CI =& get_instance();
//得到数组
$_SGLOBAL = ($CI->config->item('SGLOBAL'));
//处理数组中的数据
$_SGLOBAL['i']++;
//设置数组的值
$CI->config->set_item('SGLOBAL',$_SGLOBAL);
然后在 其它任意函数内 使用
$CI =& get_instance();
//得到数组
$_SGLOBAL = ($CI->config->item('SGLOBAL'));
var_dump($_SGLOBAL);
便可以看到 你的 i 变化了 累加了1