全局变量覆盖PHP中的会话变量

时间:2011-08-13 11:39:06

标签: php session

我在PHP中发现了奇怪的行为,它看起来像“反向寄存器全局”。首先试试这个:

session_start();
$_SESSION['test'] = NULL;
echo $_SESSION['test'];

这没有输出。然后改变第2行:

session_start();
$test = 1;
echo $_SESSION['test'];

输出“1”!

只有将$ _SESSION ['test']设置为NULL!

才会发生这种情况

如果100%折扣,请注册全局。

我的托管服务提供商有PHP 5.2.17。这不会发生在我当地的5.3.6。

这是一个错误还是有设置?

3 个答案:

答案 0 :(得分:2)

问题解决了!

我改变了php.ini:

session.bug_compat_42 = On
session.bug_compat_warn = Off

要:

session.bug_compat_42 = Off
session.bug_compat_warn = Off

谢谢Kerrek SB!

答案 1 :(得分:0)

这不会发生在我身上

http://sandbox.phpcode.eu/g/b61fd.php

尝试联系您的支持,但我认为这是不可能的

答案 2 :(得分:0)

您确定使用的是PHP v5.2.17吗?

检查

<?php phpinfo(); ?>

这不应该发生在4.3.0及更高版本......