在我的项目中,我有一个包装类$_SESSION
,所以会话变量可以通过$session->var
访问。我试图检查,如果会话变量被设置或不使用isset
:
if (!isset($this->session->idUser)) {
...
}
但isset
不返回任何东西。所以在我的包装类中,我编写了以下函数来测试发生了什么。
public function isItSet($var)
{
die(isset($_SESSION["id"]));
}
这会导致一个空白页面。我试过了:
public function isItSet($var)
{
die(is_null(isset($_SESSION["id"])));
}
还是一个空白页。然后我想:
public function isItSet($var)
{
die(isset($_SESSION));
}
这将返回1.
谁能告诉我为什么想检查是否会话变量设置返回任何内容?
你还记得session_start(); ?虽然它可能看起来微不足道,但你应该确定。 – Repox 2012-03-20 06:30:44
是的,会话是在父类的构造函数中启动的。 die(session_id)按照预期返回一个字符串。 – Jormundir 2012-03-20 06:33:13
使用'var_dump'而不是'die'或'echo'。在PHP中,转换为字符串的布尔型“假”(在您的情况下用于输出)将被转换为空字符串。 'var_dump'会显示实际的值和类型。这只是基本的PHP,请先让你自己熟悉语言。 – hakre 2012-10-16 07:55:37