¿Variables de sesión PHP intercambiadas con variables locales?

He encontrado un problema muy extraño con respecto a las variables de sesión y las variables locales en php.

Estoy tratando de averiguar si no entiendo algo sobre las sesiones en php o si esto es un problema con la versión de php que mi host está usando.

Aquí hay un código muy simple para demostrar el extraño problema:

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']);  

La primera vez que ejecuto el código, obtengo los siguientes resultados (como cabría esperar):

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

Lo ejecuto por segunda vez (sin cerrar mi navegador, por supuesto), ¡lo consigo ahora!

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

Lo ejecuté una 3ra, 4ta, 5ta vez, y así sucesivamente, ¡me sale esto!

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

Me parece que la variable de sesión 'kenny' y la variable local $ kenny se convierten en alias para uno y otro después de ejecutar el script más de una vez. hmm ... Realmente no creo que así es como funcionan las variables de sesión y las variables locales en php. Corrígeme si me falta algo aquí.

Mi proveedor de alojamiento web ejecuta php 5.2.2. Cuando pruebo exactamente este mismo código en otros hosts que ejecutan php 5.2.1, 5.2.14 y 5.3.1, siempre me dan lo que espero:

Primera vez:

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

después de eso:

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

Revisé el registro de cambios en php.net y no encontré nada con lo que pueda relacionarme que pueda solucionar este problema. Pero como mencioné, una versión anterior (5.2.1) funciona bien, así que eso es muy desconcertante para mí.

Si alguien ejecuta cualquier otra versión de php 5.2.x, pruébelo y avíseme si ve el mismo problema. O si alguien tiene alguna idea sobre el tema, realmente agradecería cualquier comentario.

¡Un millón de gracias!

Respuestas a la pregunta(1)

Su respuesta a la pregunta