用户
 找回密码
 入住 CI 中国社区
搜索
查看: 3668|回复: 3
收起左侧

[HELP] 关于全局变量的问题

[复制链接]
发表于 2013-5-18 11:54:46 | 显示全部楼层 |阅读模式
各位大神,我是新手,刚学习CI,在学习过程中遇到如下一个问题。
控制器:MY_Controller.php
PHP复制代码
 
class MY_Controller extends CI_Controller
{
        var $MY_GLOBAL = array();
 
        function __construct()
        {
                parent::__construct(); 
        }
       
}
 
复制代码


模型文件:test_model.php 中有这么一个函数
PHP复制代码
 
        function test($purview)
        {
                $_G = $this->MY_GLOBAL;
               
                $_G['test'] = array('a', 'b', 'c');
                $this->MY_GLOBAL = $_G;
        }
 
复制代码


MY_GLOBAL我想用来存储一些常用的数据,但是现在的问题是 在 test 方法中能读取到 MY_GLOBAL 的值,但是到最后使用 $this->MY_GLOBAL = $_G; 更新MY_GLOBAL的时候在方法内是有效的,要是在控制器中再获取 $this->MY_GLOBAL 的时候还是最开始的空数组,也就是说模型方法没有成功的把值更新到 MY_GLOBAL 中,现在只能使用 return $_G 之后,再在控制器中赋值。
请问我想要实现在模型里面也能更新这个变量,在模型里面需要怎么做?


发表于 2013-5-18 16:18:48 | 显示全部楼层
哥~~model里面的this怎么指到controller的成员变量了呢...
 楼主| 发表于 2013-5-18 17:19:31 | 显示全部楼层
dickfu 发表于 2013-5-18 16:18
哥~~model里面的this怎么指到controller的成员变量了呢...

哥,model里面用什么方法可以把变量返回到controller里面,除了return外,有没有什么比较优雅的方法?
使用global来申明全局变量,我看着又不爽
不行么就只能使用return返回处理好的数据,然后在controller中进行赋值这种方式操作了
发表于 2014-5-15 09:08:46 | 显示全部楼层
楼主找到处理的办法了吗

本版积分规则