Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Accessing value of public variable in codeigniter controller

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..

like image 363
Sam Samson Avatar asked Jun 16 '11 12:06

Sam Samson


1 Answers

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);
}
        }
like image 90
tpae Avatar answered Oct 02 '22 09:10

tpae