3

采取以下代码片段。测试以确保会话变量不为空的最佳方法是什么?

<?php if ($this->session->userdata('userID')) {
   $loggedIn = 1;
}
else {
   $loggedIn = 0;
} ?>

如果稍后在我的脚本中,我调用以下内容,第一个打印正确,但第二个我收到消息:未定义变量:loggedIn

<?php echo $this->session->userdata('userID'));
      echo $loggedIn; ?>

我试过使用!emptyand isset,但都没有成功。我还尝试使用 向后执行 if/then 语句if (!($this->session->userdata('userID')),但没有骰子。有什么想法吗?

4

4 回答 4

9

请尝试执行以下操作:

<?php 
$loggedIn = 0;
if ($this->session->userdata('userID') !== FALSE) {
   $loggedIn = 1;
}
?>

如果错误继续存在,您将需要发布更多代码,以防您在另一个范围内调用该变量。

于 2012-05-23T01:33:02.637 回答
2

如果您的目标是查看是否'userID'设置了会话变量,那么以下应该可以工作:

$this->session->userdata('userID') !== false
于 2012-05-23T01:34:04.713 回答
0

为什么不在会话中创建一个名为 is_logged_in 的布尔字段,然后检查如下:

if(false !== $this->session->userdata('is_logged_in'))
于 2012-05-23T09:25:27.297 回答
0
if($this->session->userdata('is_logged_in')) {
    //then condition
}

这是正确的测试方法!

于 2014-04-11T16:21:42.070 回答