我想要一個可以由任何控制器更改的全局變量。在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 關注
- 245 瀏覽
添加回答
舉報
0/150
提交
取消