Accessing value of public variable in codeigniter controller

Sam Samson picture Sam Samson · Jun 16, 2011 · Viewed 13.8k times · Source

Does anyone knows how to access the value of the public controller variable which has been updated by another function? code example Controller

class MyController extends CI_Controller {

public $variable = array();

function  __construct() {
    parent::__construct();
}

function index(){
    $this->variable['name'] = "Sam";
    $this->variable['age'] = 19;
}

function another_function(){
    print_r($this->variable);
}

}

when i call another_function() i get an empty array.. What could be the problem? Any help will be apreciated..

Answer

tpae picture tpae · Jun 16, 2011

you have to utilize the constructor, instead of index().

    class MyController extends CI_Controller {

    public $variable = array();

    function  __construct() {
        parent::__construct();
        $this->variable['name'] = "Sam";
        $this->variable['age'] = 19;
    }

    function index(){

    }

    function another_function(){
        print_r($this->variable);
    }
    }

If you want to call index(), then call another_function(), try using CI session class.

    class MyController extends CI_Controller {

public $variable = array();

function  __construct() {
    parent::__construct();
    $this->load->library('session');
    if ($this->session->userdata('variable')) {
        $this->variable = $this->session->userdata('variable');
    }
}

function index(){

    $this->variable['name'] = "Sam";
    $this->variable['age'] = 19;
    $this->session->set_userdata('variable', $this->variable);
}

function another_function(){
    print_r($this->variable);
}
        }