CI全局变量

时间:2019-07-13 16:30:07

标签: php codeigniter global-variables

我想要一个可以由任何控制器更改的全局变量。 在class CI_Controller中设置。

    var $global

__construct()

    $this->global = array(
            'account' => '1234567',
            'name' => 'George',
            'dob' => '08/20/1960'
        );

好的,这一切都可以通过扩展CI的任何控制器来完成。 如果我在一个控制器中更改全局,则不会在另一个控制器中反映出来。 IE $global['name'] = 'Harry';会将Harry保留在该控制器的全局位置,但是当我进入另一个控制器时,将还原为George。

我希望能够在任何控制器中更改全局。 我在这里想念什么。 预先感谢。

-ralph

2 个答案:

答案 0 :(得分:1)

如果您需要动态数据,请使用会话 cookies 。它比您在php代码中处理静态数据要灵活得多。但是,如果只想使用全局变量,请创建一些CodeIgniter Helper来更改变量数据,并在__construct()方法中调用它。另请参阅有关CodeIgniter Hooks的信息,也许它也会有用。

答案 1 :(得分:0)

您可以在MY_Controller内创建一个名为application/core的核心控制器,几乎可以使任何其他控制器扩展my_controller,然后您就可以访问此类中的每个变量:

class MY_Controller extends CI_Controller {
    public $global;
}

然后在其他任何控制器中:

class Welcome extends MY_Controller {
    public function __construct() {
        parent::__construct();
        $this->global = 'something';
    }
}
相关问题