我想要一个可以由任何控制器更改的全局变量。
在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
答案 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';
}
}