我想要一个可以被任何控制器更改的全局变量。在class CI_Controller
设置。
var $global
在__construct()
$this->global = array(
'account' => '1234567',
'name' => 'George',
'dob' => '08/20/1960'
);
好的,这一切都适用于任何扩展CI
的控制器。如果我在一个控制器中更改全局,它不会反映在另一个控制器中。IE $global['name'] = 'Harry';
将使 Harry 成为该控制器的全局,但当我进入另一个控制器时,将恢复为 George。
我有点期望能够在任何控制器中更改全局。我在这里错过了什么。提前谢谢。
-拉尔夫
如果您需要动态数据,请使用会话或 Cookie。它比你在 php 代码中处理静态数据要灵活得多。但是,如果您只想使用全局变量,请创建一些 CodeIgniter 帮助程序,它将更改变量数据并在 __construct(( 方法中调用它。另请阅读有关CodeIgniter Hooks的信息,也许它也很有用。
您可以在application/core
内部创建一个核心控制器,MY_Controller
调用它,并且几乎可以使任何其他控制器扩展my_controller然后您可以访问此类中的每个变量:
class MY_Controller extends CI_Controller {
public $global;
}
然后在任何其他控制器中:
class Welcome extends MY_Controller {
public function __construct() {
parent::__construct();
$this->global = 'something';
}
}