获取以下代码段。测试以确保会话变量不为空的最佳方法是什么?
<?php if ($this->session->userdata('userID')) {
$loggedIn = 1;
}
else {
$loggedIn = 0;
} ?>
如果稍后在我的脚本中,我调用以下内容,第一次正确打印,但在第二次我收到消息:未定义变量:loggedIn
<?php echo $this->session->userdata('userID'));
echo $loggedIn; ?>
我已尝试使用!empty
和isset
,但两者均未成功。我还尝试使用if (!($this->session->userdata('userID'))
向后执行if / then语句,但没有骰子。有什么想法吗?
答案 0 :(得分:9)
请尝试执行以下操作:
<?php
$loggedIn = 0;
if ($this->session->userdata('userID') !== FALSE) {
$loggedIn = 1;
}
?>
如果错误仍然存在,您需要发布更多代码,以防您在另一个范围内调用该变量。
答案 1 :(得分:2)
如果您的目的是查看会话变量'userID'
是否已设置,那么以下内容应该有效:
$this->session->userdata('userID') !== false
答案 2 :(得分:0)
为什么不在会话中创建一个名为is_logged_in的布尔字段,然后检查如下:
if(false !== $this->session->userdata('is_logged_in'))
答案 3 :(得分:0)
if($this->session->userdata('is_logged_in')) {
//then condition
}
这是测试的正确方法!