Переменные сессии PHP поменялись местными переменными?

Я столкнулся с очень странной проблемой в отношении переменных сеанса и локальных переменных в php.

Я пытаюсь выяснить, не понимаю ли я что-то о сессиях в php или это проблема с версией php, которую использует мой хост.

Вот очень простой код, демонстрирующий странную проблему:

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

При первом запуске кода я получаю следующие результаты (как и следовало ожидать):

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

Я запускаю его второй раз (конечно, не закрывая свой браузер), я получаю это сейчас!

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

Я запускаю его в 3-й, 4-й, 5-й раз и так далее, я получаю это !!!

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

Мне кажется, что переменная сеанса 'kenny' и локальная переменная $ kenny становятся псевдонимами одного и другого после многократного запуска сценария. хм ... я действительно не думаю, что так работают переменные сессии и локальные переменные в php. Пожалуйста, поправьте меня, если я что-то здесь упускаю.

Мой веб-хостинг работает под управлением php 5.2.2. Когда я пытаюсь точно такой же код на других хостах с php 5.2.1, 5.2.14 и 5.3.1, они всегда дают мне то, что я ожидаю:

1-й раз:

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

после этого:

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

Я проверил журнал изменений на php.net и не нашел ничего, с чем я мог бы столкнуться, чтобы решить эту проблему. Но, как я уже говорил, более ранняя сборка (5.2.1) работает нормально, так что это очень озадачивает меня.

Если кто-нибудь запускает любую другую версию php 5.2.x, пожалуйста, попробуйте и дайте мне знать, если вы видите ту же проблему. Или, если у кого-то есть понимание проблемы, я буду очень признателен за любые отзывы.

Бесконечно благодарен!

Ответы на вопрос(1)

Ваш ответ на вопрос