walkingsky 发表于 2010-6-19 13:44:30

CI 控制器能使用类内部全局变量吗?

最近要用到ajax 提交大量数据到 一个 CI控制器的函数(方法),然后成功后在转到此方法,但是 之前post 上来的数据都没有了!

所以我想用一种方法暂存这些数据,session 类有长度限制,而且对于数组的存储特别麻烦。 最好的方法就是给这个控制器类定义一个内部全局变量!

我试了,还是不行,第一次调用方法,将post上来的数据赋值给这个变量,第二次调用方法,从这个变量取回 数据,但是失败了!!

问题在哪里呀,或者有什么更好的方法吗?

private $purchase_session = array();

function test()
{
        if(!empty($_POST))
                {
                        $product_ = array();
                        foreach($_POST as $key=>$val){
                                $val=$this->input->post($key);                                                                $product_+_(\d{1,2}$)/','$1',$key)]+)_\d{1,2}$/','$1',$key)] = $val;       
                               
                        }

                        $this->purchase_session = $product_;
                }
                else
                {
                        $data['purchase'] = $this->purchase_session;
                }

}

Hex 发表于 2010-6-19 17:37:57

你的想法是不可能实现的,这是 PHP 的运行机制限制的,也就是每次请求都会初始化、释放所有资源。
只能通过 session、数据库、memcached 等持久化工具和机制才能实现。
POST 过来数据了,为什么不入库?数据库都是摆设吗。。。。
:L

visvoy 发表于 2010-6-19 20:27:48

建议先看php基础

walkingsky 发表于 2010-6-20 12:32:45

谢谢!现在想通了!
我是看到其他类的 如下 调用方法才有了如此“幻想”,见笑!
$class_ = new class();
$class_->value = 123;
$class_->function();
echo $class_->value;
页: [1]
查看完整版本: CI 控制器能使用类内部全局变量吗?