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