1,$_SESSION[]只取值是不会替换,除非你重新付值。
2,不是,都可用。
3,如果register_globals=on,是按variables_order = "GPCS"顺序取值的。
用$_SESSION[a]=='abc'则没这方面问题。

解决方案 »

  1.   

    另外,在一个函数里面要取session的值,该如何取?
    用$_SESSION好像会把值冲掉?
      

  2.   

    1.$_SESSION[]能否用来取值?是否会把之前注册变量冲掉(替换)?
    答: 能. 只取值当然不会.
    如果有一SESSION变量$val, 则标准格式应该是
    echo $_SESSION['val'];2.$_SESSION[]是否是在register_globals=off是才有必要用?
    答: 不是. 为了安全, 建议这么用.3. 楼上上的说得好.补充:在新版PHP中已经不建议使用session_register等一系列的函数.
    最好是直接修改$_SESSION的值.
    也就是说, 要把变量$val放入SESSION中, 就这样:
    $_SESSION['val'] = '值'$_SESSION是自动全局变量, 在函数中可直接存取.
      

  3.   

    session_start()还是需要的
    $_SESSION是一个数组,所有数组函数都适用.【】里面的是数组的索引
    如果register_globals=on来定义的全局变量是容易被冲掉的,所以不安全
    $_SESSION【】除非重新赋值或者unset或者过期,是不会丢失的
      

  4.   

    $_SESSION由于是数组,所以,你可以往这个数组中添加成员变量(数组元素),也可以替换已有的数组元素
      

  5.   

    session_register('val') 和 $_SESSION['val'] = '值'
    是同一动作的两种表述,不要混用。建议使用后者。当register_globals=on
    已定义的session变量不会被同名变量替换,这也就是经常友人问到的。“为什么注册后再换个名字注册,却还是原来的名字”的原因。$_SESSION['val'] 和 $val 是绝不一样的两个变量