Php $\u会话变量未“取消设置”
发生了以下情况:Php $\u会话变量未“取消设置”,php,session,unset,Php,Session,Unset,发生了以下情况: session_start(); $_SESSION['myvar'] = 'something'; class SessionControl { public function unsetSessionVar($varName) { if (!isset($_SESSION)) { session_start(); } if (isset($_SESSION[$var
session_start();
$_SESSION['myvar'] = 'something';
class SessionControl
{
public function unsetSessionVar($varName)
{
if (!isset($_SESSION))
{
session_start();
}
if (isset($_SESSION[$varName]))
{
unset($_SESSION[$varName])
}
echo 'TEST 1: [' . $_SESSION[$varName] . ']';
}
}
$SesContr = new SessionControl();
$SesContr->unsetSessionVar('myvar');
echo "TEST 2: [" . $_SESSION['myvar'] . ']';
产生:
TEST 1: []
TEST 2: [something]
这里发生了什么?我想它应该会给你一个syntex错误。。你错过了;在unset语句后面应该是这样的
unset($_SESSION[$varName]);
如果可以解决您的问题,请运行它。对我来说,它工作正常。您在哪个操作系统上使用哪个web服务器?重新启动可能会有所帮助?此代码在我的服务器上正常工作-变量未设置。考虑到您有一个语法错误,可能您发布的不是原始代码吗?首先要做的是。当你不确定的时候,你错过了一个分号,这对我来说也是正确的。当你不安的时候。Apache给出了一个错误,称未定义的索引为“myvar”,这意味着它没有设置。如果我没有取消设置,我会在两个测试中看到一些东西。另一件事是,我建议不要为结束会话而取消设置变量。使用session\u destroy。此外,您不需要在那里启动session\u两次-在文件顶部启动一次就足够了。是否需要在单行语句中设置半列??我认为除了循环和if语句之外,没有其他语句。。我们需要把它放进去。。这是必要的