Php 如何在CodeIgniter 2.2中声明全局变量?

Php 如何在CodeIgniter 2.2中声明全局变量?,php,codeigniter,Php,Codeigniter,我在CodeIgniter中有这样一个控制器 class C extends CI_controller { public function A() { var $data; } public function B(){ //here i need to access the variable $data; } } 如何在CodeIgniter中实现这一点?我可以使用会话。在会话中分配该变量真的是件好事吗?有没有更好

我在CodeIgniter中有这样一个控制器

class C extends CI_controller {

    public function A()
    {
        var $data;
    }

    public function B(){
        //here i need to access the variable $data;

    }
}
如何在CodeIgniter中实现这一点?我可以使用会话。在会话中分配该变量真的是件好事吗?有没有更好的方法来声明全局变量

我以前是这样的,但现在不工作了

class C extends CI_controller {

        public $data;              
        public function A()
        {
            $this->data=1;
        }

        public function B(){
            //here $this->data showing null value y

        }
    }

全局变量仅存在于请求的生存期内。因为对于一个请求,控制器中只执行一个函数(或者你用错误的方式执行!),所以全局变量不起作用


您必须将其放入会话或数据库中。

全局变量仅存在于请求的生存期内。因为对于一个请求,控制器中只执行一个函数(或者你用错误的方式执行!),所以全局变量不起作用

您必须将其放入会话或数据库中。

使用:

使用:


您应该尝试在配置文件上设置一些变量,然后您只需在控制器构造函数中包含该文件,就可以从任何视图访问这些变量。。。

您应该尝试在配置文件中设置一些变量,然后将该文件包含在控制器构造函数中,您可以从任何视图访问这些变量。。。

如果出现这种情况,您拥有的第二块代码将不起作用:输入C/A页,然后输入C/B页。页面完成后,您将无法使用存储在全局变量中的值

尝试使用会话或flashdata。Flashdata与会话类似,只是在下一次页面调用后它会消失


以下是会话和flashdata的CI页面供参考:

如果出现这种情况,您拥有的第二块代码将不起作用:输入C/A页,然后输入C/B页。页面完成后,您将无法使用存储在全局变量中的值

尝试使用会话或flashdata。Flashdata与会话类似,只是在下一次页面调用后它会消失

以下是会话和flashdata的CI页面,以供参考:

class C extends CI_controller {

    public function A()
    {
        $this->load->library('session');
        $data = array('data'=>$data); //set it
        $this->session->set_userdata($data);
    }

    public function B(){
        $this->load->library('session');
        $this->session->userdata('data'); //access it
    }
}