2011-06-16 13 views
7

किसी को भी कैसे सार्वजनिक नियंत्रक चर एक और समारोह से अद्यतन किया गया है, जिनमें से मूल्य तक पहुँचने के लिए जानता है करता है? कोड उदाहरण नियंत्रकCodeIgniter नियंत्रक में सार्वजनिक चर के मूल्य को एक्सेस करना

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); 
} 

}

जब मैं फोन another_function() मैं एक खाली सरणी .. क्या समस्या हो सकती है मिल सकता है? किसी भी मदद की, apreciated हो जाएगा ..

+0

बेवकूफ सवाल है, तो आप() सूचकांक कहा जाता है चाहते हैं? –

+1

यह काम करना चाहिए, यह lik लग रहा है ई 'सूचकांक()' नहीं बुलाया गया है। – Dunhamzzz

उत्तर

9

आपको उपयोग करना होगा निर्माता, सूचकांक के बजाय()।

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); 
    } 
    } 

आप index() कहते हैं, तो फोन another_function(), सीआई session का उपयोग करके देखें वर्ग।

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); 
} 
     } 
+0

पुरानी लेकिन मेरे लिए सोना। Thaks tpae –

2

index() समारोह केवल कहा जाता है जब आप उस विशिष्ट पृष्ठ पर जाने यानी index.php/mycontroller/index तो index.php/mycontroller/another_function के लिए जा रहा index() फ़ंक्शन को कॉल नहीं होंगे। आप पहली बार सूचकांक पृष्ठ पर जाने के (क्रम में उनकी जानकारी पाने के लिए) तो उन्हें सीधे वहां निर्देशित पहली और एक डेटाबेस के लिए या सत्र चर में विवरणों को सहेजने के उपयोगकर्ता की जरूरत है। यदि आप पहले से मानों को जानते हैं (यानी यह हमेशा "सैम" और "1 9" होने जा रहा है, तो उस कोड को कन्स्ट्रक्टर में रखें, जिसे हर बार जब आप उस नियंत्रक से किसी पृष्ठ पर जाते हैं, तो उसे कॉल किया जाता है।

संबंधित मुद्दे