CI 全局变量

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


    var $global

在里面 __construct()


    $this->global = array(

            'account' => '1234567',

            'name' => 'George',

            'dob' => '08/20/1960'

        );

好的,这一切都适用于任何扩展CI. 如果我更改一个控制器中的全局变量,它不会反映在另一个控制器中。IE$global['name'] = 'Harry';会为那个控制器保持 Harry 全局,但当我进入另一个控制器时会恢复到 George。


我有点期望能够在任何控制器中更改全局。我在这里错过了什么。提前致谢。


达令说
浏览 217回答 2
2回答

森林海

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

呼如林

您可以创建一个核心控制器在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';    }}
打开App,查看更多内容
随时随地看视频慕课网APP