Как объявить глобальную переменную в CodeIgniter 2.2?

У меня есть контроллер в CodeIgniter, как это

class C extends CI_controller { public function A() { var $data; } public function B(){ //here i need to access the variable $data; } } 

Как это сделать в CodeIgniter? Я могу использовать сеанс. Действительно ли полезно назначить эту переменную в сеансе? Есть ли лучший способ объявить глобальные переменные?

Я использовал это, но не работал

 class C extends CI_controller { public $data; public function A() { $this->data=1; } public function B(){ //here $this->data showing null value y } } 

Глобальные переменные существуют только в течение срока службы запроса. Поскольку для одного запроса в контроллере есть только одна функция (или вы делаете это неправильно!) Глобальные переменные не будут работать.

Вы должны поместить его в сеанс или в базу данных.

Используйте помощник сеанса CI :

 class C extends CI_controller { public function A() { $this->load->library('session'); $data = array('data'=>$data); //set it $this->session->set_userdata($data); } public function B(){ $this->load->library('session'); $this->session->userdata('data'); //access it } } 

Вы должны попытаться установить некоторые переменные в файле конфигурации, тогда вы просто включите этот файл в свой конструктор контроллеров, и вы сможете получить доступ к этим переменным из любого вида, который вы хотите … http://codeigniter.com/user_guide/libraries/config.html

Второй блок кода, который у вас есть, не будет работать, если у вас есть такой сценарий: Введите страницу C / A, затем введите C / B. После того, как страница будет выполнена, вы не сможете использовать значения, хранящиеся в глобальных переменных.

Попробуйте использовать сеансы или flashdata. Flashdata похожа на сеанс, за исключением того, что он исчезает после следующего вызова страницы.

Вот страница CI для сеансов и flashdata для справки: http://codeigniter.com/user_guide/libraries/sessions.html