我发现PHP中存在一种奇怪的行为,看起来像是“反向注册全局变量”。首先尝试执行以下操作:
这段代码输出为空。然后修改第二行:
session_start();
$_SESSION['test'] = NULL;
echo $_SESSION['test'];
这段代码输出为空。然后修改第二行:
session_start();
$test = 1;
echo $_SESSION['test'];
这将输出“1”!
只有当我将$_SESSION['test']设置为NULL时才会发生这种情况!
如果关闭了全局变量注册,则无法发生此情况。
我的托管提供商使用的是PHP 5.2.17。在我的本地5.3.6上不会发生这种情况。
这是一个bug还是有相关的设置?
session.bug_compat_42
配置标志的引用。你能发布完整的代码吗? - Kerrek SB