CodeIgniter global variable CodeIgniter global variable php php

CodeIgniter global variable


1: Create MY_Controller in application/libraries with following:

class MY_Controller extends Controller {    var $data;        //constructor function              }

2: Replace Controller to MY_Controller in all your controller files and load views with $this->data

class Contact extends Controller { //to.. } class Contact extends MY_Controller {  $this->load->view('contact_view', $this->data);}

this way you can perform default functions that are applicable for whole site in MY_Controller like loading settings.


I ran into a similar problem earlier today. I found that an easier way, rather than globals, was to use constants. You can define a constants file that will load from your index.php file:

// Include additional constants$defines_file = 'includes/defines.php';if (file_exists($defines_file)){    require_once($defines_file);} 

Then you can add your constants to the defines.php file:

define(MY_CONSTANT,'my constant info');

This way they will be available in any file throughout the system either directly: echo MY_CONSTANT; or you can assign them to variables.

I decided this way would be easier for me as I would only have 1 location to go to when/if I needed to change the constants.

More: http://codeigniter.com/forums/viewthread/56981/#280205


I used a helper function to call a global function!

eg.

function get_user($userid){    $CI =& get_instance();    $query = $CI->db->get_where('users', array('id' => $userid), 1, 0);    foreach ($query->result() as $row){        // Return a object with userdata!        return $row;    }}

Now I have access to my userdata everywhere..