globale Variablen in PHP funktionieren nicht wie erwartet
Ich habe Probleme mit globalen Variablen in PHP. Ich habe ein$screen
var wird in einer Datei festgelegt, für die eine andere Datei erforderlich ist, die eininitSession()
in noch einer anderen Datei definiert. DasinitSession()
erklärtglobal $screen
und verarbeitet dann $ screen weiter unten mit dem Wert, der im allerersten Skript festgelegt wurde.
Wie ist das möglich?
Wenn Sie versuchen, $ screen erneut festzulegen, rufen Sie das Symbol aufinitSession()
verwendet es den Wert, der zuerst noch einmal verwendet wurde. Der folgende Code beschreibt den Vorgang. Könnte jemand versuchen, dies zu erklären?
$screen = "list1.inc"; // From model.php
require "controller.php"; // From model.php
initSession(); // From controller.php
global $screen; // From Include.Session.inc
echo $screen; // prints "list1.inc" // From anywhere
$screen = "delete1.inc"; // From model2.php
require "controller2.php"
initSession();
global $screen;
echo $screen; // prints "list1.inc"
Aktualisieren:
Wenn ich erkläre$screen
Wieder global, kurz bevor das zweite Modell benötigt wird, wird $ screen korrekt für das aktualisiertinitSession()
Methode. Seltsam.