这是PHP语言中的错误还是什么?

Was*_*jer 0 php

我真的很想知道这段代码

<?    
  session_start()
 $_SESSION['me'] = 654;
    $me = $_GET['me'];

    echo  $_SESSION['me'];
?>
Run Code Online (Sandbox Code Playgroud)

它将打印$ me值而不是$ _SESSION ['me']值.

这是一个错误还是出于安全原因这样做?任何解释?

Pek*_*ica 5

你有任何机会启用register_globals吗?

编辑:这似乎与PHP 4.3之前存在的着名会话副作用有关.如果未初始化会话变量,则将使用可能存在的同名全局变量的值.

PHP 4.2.3及更低版本具有未记录的功能/错误,允许您在全局范围内初始化会话变量,尽管register_globals已禁用.如果使用此功能,并且还启用了session.bug_compat_warn,PHP 4.3.0及更高版本将发出警告.禁用此指令可以禁用此功能/错误.

不过,我仍然无法理解为什么会发生这种情况.pygorex1在他的回答中所写的内容甚至更奇怪.