我想要一个可以由任何控制器更改的全局变量。在class CI_Controller设置。 var $global在里面 __construct() $this->global = array( 'account' => '1234567', 'name' => 'George', 'dob' => '08/20/1960' );好的,这一切都适用于任何扩展CI. 如果我更改一个控制器中的全局变量,它不会反映在另一个控制器中。IE$global['name'] = 'Harry';会为那个控制器保持 Harry 全局,但当我进入另一个控制器时会恢复到 George。我有点期望能够在任何控制器中更改全局。我在这里错过了什么。提前致谢。
2 回答
森林海
TA贡献2011条经验 获得超2个赞
如果您需要动态数据,请使用session或cookies。它比您在 php 代码中处理静态数据要灵活得多。但是,如果您只想使用全局变量,请创建一些CodeIgniter Helper来更改变量数据并在 __construct() 方法中调用它。另请阅读CodeIgniter Hooks,也许它也会有用。
呼如林
TA贡献1798条经验 获得超3个赞
您可以创建一个核心控制器在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';
}
}
- 2 回答
- 0 关注
- 216 浏览
添加回答
举报
0/150
提交
取消