在我的项目中,我有一个包装类$_SESSION,因此可以访问会话变量$session->var.我试图使用以下方法检查是否设置了会话变量isset:
if (!isset($this->session->idUser)) {
...
}
Run Code Online (Sandbox Code Playgroud)
但是isset没有返回任何东西.所以在我的包装器类中,我编写了以下函数来测试发生了什么.
public function isItSet($var)
{
die(isset($_SESSION["id"]));
}
Run Code Online (Sandbox Code Playgroud)
这导致一个空页面.我试过了:
public function isItSet($var)
{
die(is_null(isset($_SESSION["id"])));
}
Run Code Online (Sandbox Code Playgroud)
还是一个空白的页面.然后我尝试了:
public function isItSet($var)
{
die(isset($_SESSION));
}
Run Code Online (Sandbox Code Playgroud)
这返回1.
任何人都可以告诉我为什么尝试检查会话变量是否设置返回什么?
为了支持isset()你需要重载包装器中的函数.
所以,在你的包装器中,添加:
public function __isset($var){
return isset($_SESSION[$var]);
}
Run Code Online (Sandbox Code Playgroud)
要使用它,您只需要:
isset($this->session->myVar);
Run Code Online (Sandbox Code Playgroud)
如果仍然无效,请执行以下操作:
var_dump($_SESSION)
Run Code Online (Sandbox Code Playgroud)
这将转储整个$ _SESSION数组,并显示您要检查的变量是否确实存在.
| 归档时间: |
|
| 查看次数: |
5801 次 |
| 最近记录: |