PHP-Sitzungsvariablen mit lokalen Variablen ausgetauscht?

Ich habe ein sehr seltsames Problem in Bezug auf Sitzungsvariablen und lokale Variablen in PHP festgestellt.

Ich versuche herauszufinden, ob ich etwas über Sitzungen in PHP nicht verstehe oder ob dies ein Problem mit der von meinem Host verwendeten PHP-Version ist.

Hier ist ein sehr einfacher Code, um das seltsame Problem zu demonstrieren:

session_start();  
var_dump($kenny);  
var_dump($_SESSION['kenny']);  
$_SESSION['kenny']='def';  
var_dump($kenny);  
var_dump($_SESSION['kenny']);  
$kenny = 'abc';  
var_dump($kenny);  
var_dump($_SESSION['kenny']);  

Das erste Mal, wenn ich den Code ausführe, erhalte ich die folgenden Ergebnisse (wie erwartet):

NULL NULL NULL string(3) "def" string(3) "abc" string(3) "def"

Ich führe es ein zweites Mal aus (natürlich ohne meinen Browser zu schließen), das bekomme ich jetzt!

string(3) "def" string(3) "def" string(3) "def" string(3) "def" string(3) "abc" string(3) "abc" 

Ich führe es ein 3., 4., 5. Mal aus und so weiter, ich bekomme das !!!

string(3) "abc" string(3) "abc" string(3) "def" string(3) "def" string(3) "abc" string(3) "abc" 

Es sieht für mich so aus, als ob die Sitzungsvariable 'kenny' und die lokale Variable $ kenny nach mehrmaliger Ausführung des Skripts Aliase für die eine oder andere bilden. hmm ... ich glaube wirklich nicht, dass dies die Funktionsweise von Sitzungsvariablen und lokalen Variablen in PHP ist. Bitte korrigieren Sie mich, wenn ich hier etwas vermisse.

uf meinem Webhost läuft PHP 5.2.2. Wenn ich auf anderen Hosts, auf denen PHP 5.2.1, 5.2.14 und 5.3.1 ausgeführt wird, genau denselben Code versuche, geben sie mir immer das, was ich erwarte:

1. Ma:

NULL NULL NULL string(3) "def" string(3) "abc" string(3) "def"

danac:

NULL string(3) "def" NULL string(3) "def" string(3) "abc" string(3) "def" 

Ich habe das Änderungsprotokoll auf php.net überprüft und habe nichts gefunden, worauf ich mich beziehen kann, um dieses Problem zu beheben. Aber wie bereits erwähnt, funktioniert ein früherer Build (5.2.1) einwandfrei. Das ist für mich sehr verwirrend.

Wenn jemand eine andere Version von PHP 5.2.x ausführt, probieren Sie es aus und lassen Sie mich wissen, wenn Sie das gleiche Problem feststellen. Oder wenn jemand einen Einblick in das Thema hat, würde ich mich über Feedback sehr freuen.

Tausend Dank

Antworten auf die Frage(2)

Ihre Antwort auf die Frage