user4756836 user4756836 - 1 month ago 6
PHP Question

Global variables not updating in PHP Codeigniter

I want to update a global variable in my MVC application. I'm passing information via my global variable

$foo
but for some reason it is not updating the data in one of my
functions
in the
class


How can I update the value of
$foo
inside my function?

My code:

class example extends CI_Controller {

private $foo;

public function __construct() {
parent::__construct();
$this->foo = 10;
}

public function index() {
// some code here
$this->foo = 20;
$data['main_content'] = 'login_form';
$this->load->view('includes/template', $data);
}

if($this->input->post()) {
error_log($this->foo);
}
}


It is returning
10
even though I am trying to update the value to
20

Answer

I'm not sure what you are doing here... but this works.

class Main extends CI_Controller {

    private $foo;

    public function __construct() {
        parent::__construct();
        $this->foo = 10;
    }

    public function index() {
        // some code here
        $this->foo = 20;
        echo $this->foo; // The result is 20 as set.
    }
    // hard coded the setter var name for demonstration purposes only
    public function set_foo($foo){
       $this->foo = $foo;
    }
    // hard coded the getter var name for demonstration purposes only
    public function get_foo(){
       return $this->foo;
    }

}

$foo is a "property" of the class which IS accessible to all of it's member "methods". It isn't a GLOBAL as you refer to it. GLOBALS are accessible to everything.

Comments