2012-05-23 79 views
3

请看下面的代码片段。测试以确保会话变量不是空的最佳方法是什么?什么是测试CodeIgniter会话变量的正确方法?

<?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语句,但没有骰子。有什么想法吗?

回答

9

尝试做,而不是执行以下操作:

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

如果错误继续,你需要的情况下,发布更多的代码,您所呼叫的另一范围变量。

+0

它实际上最终成为一个问题,没有将变量传递给我正在加载的视图(noob move!),但我很欣赏澄清。谢谢你,朋友! – JamieHoward

2

如果你的目的是要看到会话变量'userID'是否被设置,那么下面应该工作:

$this->session->userdata('userID') !== false 
0

为什么不你在会议上呼吁is_logged_in创建一个布尔字段,然后检查像:

if(false !== $this->session->userdata('is_logged_in')) 
0
if($this->session->userdata('is_logged_in')) { 
    //then condition 
} 

这是测试的正确方法!

+0

抛出一个错误,遗憾的芽。 – ChristoKiwi

相关问题