2016-06-22 15 views
0

Ich habe globale Variable in Controller definiert, aber ich bin Wert innerhalb Index() -Funktion zuweisen. Wert zugänglich innerhalb Index(), aber nicht innerhalb von und anderen Funktionen. wie kann ich es tun ??Codeigniter globalen Variablenwert nicht zugänglich

class Manage_business extends CI_Controller 
    { 
    var $id; 

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

    public function index($no) 
    { 

     $this->id=$no; 
     echo $this->id; 
    } 

    public function about() 
    { 
     echo $this->id; 
     die(); 
} 
} 
+0

Überprüfen Sie http://stackoverflow.com/questions/17013397/code-igniter-best-place-to-declare-global-variable und http://stackoverflow.com/questions/19237316/how-to-use- global-variable-in-php-codezeichen – Saty

+0

gibt es einen Wert innerhalb des Konstruktors. Ich habe Inside Index() zugewiesen. auch ich will keine super globale Variable. –

+0

Wenn Sie direkt über Funktion verwenden, dann können Sie den Wert für $ this-> ID über die Indexfunktion nicht festlegen, weil sie niemals aufgerufen wird. – Ali

Antwort

1

Try-Sitzungen verwendet wird, ist eine der vielen Optionen, die Sie

class Manage_business extends CI_Controller { 

public function __construct() 
{ 
    parent::__construct(); 
    $this->load->library('session); 
} 

public function index($no) 
{ 
    $this->session->set_userdata('id',$no) //to last 
    $this->session->set_flashdata('id',$no) //available only for the next refresh 
    echo $this->id; 
} 

public function about() 
{ 
    echo $this->session->id; 
    die(); 

} }

diese Art und Weise haben können Sie sehen, was Sie auf dem Index getan haben, bitte Sehen Sie es, das für Sie funktioniert, es gibt andere Methoden, aber diese ist meiner Meinung nach am effektivsten und am einfachsten anzuwenden.

+0

Flash-Daten funktioniert nur bei der Verwendung von redirect() – user4419336

+0

@ wolfgang1983 ja, aber ist, was ich oben schrieb, er versucht, eine globale var zu füllen, aber in verschiedenen Methoden, zum Aufruf dieser Methoden ich guees er ist die Seite aktualisieren, dafür Er braucht Sitzungen oder irgendetwas, das seine Daten am Controller hält – marcoFSN

0

Sie verwenden var in der Variablendeklaration, die den Syntaxfehler generiert. Die globale Variable kann im Konstrukt() erstellt werden, so dass die Variable von anderen Funktionen in der Klasse verwendet werden kann.

Bitte überprüfen Sie den korrigierten Code unten.

0

codeigniter erlaubt diese Methode nicht, da Sie Werte mit Controller oder Modal definieren sollten und diese weiterleiten. Eine der einfachsten Methoden ist es, eine Konstante in config/constants.php zu definieren. Diese wird in der App verfügbar sein, ohne modal oder view oder controller zu übergeben. Sie können global überall zugänglich sein. Eine andere Methode verwendet Sitzungswerte in cisession wie Sie muss Session aufrufen und Werte extrahieren.