2015-01-15 144 views
1

在codeigniter的MVC模式模型中,我做了一些在下面相同的代碼。php isset似乎不起作用

function getBoardNum($option){ 
    foreach($option as $key=>$content){ 
     $this->db->where($key,$content); 
     //echo "$key $content"; 
    } 
    if(isset($this->db->get('parsing_tb')->row()->num)){ 
     $num = $this->db->get('parsing_tb')->row()->num; 
     return $num; 
    }else{ 
     return false; 
    } 
    } 

的問題是,isset是在if條件似乎不起作用。 爲了找出什麼是錯誤的,我使用了var_dump和諸如確認$選項數據之類的東西。但Everythings好吧... 請讓我知道什麼是錯的!

謝謝您的閱讀。

+0

'isset()函數'旨在找出一個變量或屬性已定,其中排序洛斯像你的意圖。你得到什麼結果?當知道屬性num存在時,isset()是否返回false? – 2015-01-15 17:18:22

+0

什麼是'this-> db-> get('parsing_tb') - > row() - > num'的'var_dump'? – 2015-01-15 17:18:23

+0

'$ this-> db-> get('parsing_tb') - > row()'可能會返回一個包含num屬性的對象。即使它是空的,所以你最好檢查if(空($ this-> db-> get('parsing_tb') - > row() - > num))'' – 2015-01-15 17:21:16

回答

0

你應該設置檢查是否有一些變量被初始化 - 這意味着你檢查它是否有任何價值。 即使這種情況下,將yeald TRUE:

$var = ""; 
if(isset($var)){ 
    echo TRUE; 
} 

在你的代碼,它看起來像你第一次嘗試將其初始化並分配一定的參考價值,並使用isset。無論你想要完成什麼,你都應該使用不同的方法。

0

IDK爲什麼isset()函數不工作,但你可以代替試試這個:

//... 

$query = $this->db->get('parsing_tb'); 
if ($query->num_rows() > 0) 
{ 
    $num = $this->db->get('parsing_tb')->row()->num; 
    return $num; 
} 
else 
    return false;