<?php
session_start();
$_SESSION['url'] = 'session';
$url = 'abc';
echo $_SESSION['url'];
?>这样会输出'abc',同名为什么会出现这种现象,有没有文档是讲这个的?如果我想在不改变SESSION名字的时候用到SESSION值有什么办法吗?

解决方案 »

  1.   


    <?php
        session_start();
        $_SESSION['url'] = 'session';
        $url = 'abc';
        echo $_SESSION['url'];
    ?>
    /*
    楼主是看花眼了,或者晕了吧,不可能是php的bug吧,你是php5的测试输出:session
    */
      

  2.   

    和你的php.ini内register_globals的配置有关<?php
        session_start();
        ini_set('register_globals', false);
        $_SESSION['url'] = 'session';
        $url = 'abc';
        echo $_SESSION['url'];
    ?>
      

  3.   

    还是直接到php.ini改下配置值吧,不过开发过程建议保留register_globals为On,自己做一些filter
      

  4.   

    session
    确实是有这个问题,我现在一般给SESSION起的名字,和变量的名字不能冲突
      

  5.   

    修改PHP文件夹下的php.ini文件中register_globals=On 时,结果显示为abc.
    设置register_globals=Off时,结果显示session
    google一下开关状态的区别,注意修改后重起Apache.
      

  6.   

    register_globals 设成ON,$_SESSION['url'] = 'session';与$url = 'abc';是一样的
      

  7.   

    我想应该是打开的时候对读取$_SESSION,$_COOKIE等有优先级限定吧,我去查查