2015-09-02 66 views
1

根据PHP.net的描述,session_reset()应该用原始值重新初始化会话数组。然而,当我运行下面的代码时,输​​出将是“一些新值”,而输出应该是“一些价值”。我的挂载PHP版本是5.6.1。请问如果你知道问题是什么?session_reset()不能正常工作

<?php 
session_start(); 

$_SESSION["A"] = "Some Value"; 

    echo $_SESSION["A"]; 

    $_SESSION["A"] = "Some New Value"; 

    session_reset(); 

    echo $_SESSION["A"]; 

?> 
+1

apache错误文件说什么? – LeDoc

+0

会话A的输出是什么? –

+0

你指的是第一场A还是第二场? –

回答

1

session_reset()实际上session_start()后立即恢复$_SESSION的地步,或者更准确地说,对所保存(通过脚本结束或session_write_close)的最后的值。

所以,如果没有被定为$ _SESSION [“A”当会议是最后一次关闭,你的第二个echo你会得到Notice: Undefined index: A,但是如果你有以前分配给它(例如值价值“一些新价值”被分配,然后保存) - 你会得到这个价值。在你的例子中可能是这种情况。

+0

谢谢。但为什么php.net说,该代码中的输出应该是“一些值”? –

+0

它不这么说。它说“重新初始化存储在会话存储中的原始值的会话”。 =意味着将会话恢复到最后**存储状态**。会话存储在脚本结束时或通过显式调用'session_write_close()'。 – uri2x

+0

感谢您的信息。你是对的,我错误地理解了它。 –