2017-01-14 47 views
1

我試圖顯示使用if-else登錄的輸入字段值,我想使用單行ternary運算符,但它總是返回錯誤。但是,如果我使用if-else它工作正常。我的代碼是:嵌套三元運算符isset()問題

做工精細

if(isset($_COOKIE['m_name'])){ 
    echo $_COOKIE['m_name']; 
}else if(isset($this->userdata)){ 
    echo $this->userdata[0]->first_name; 
}else{ 
    echo 'No Data'; 
} 

返回注意始終

echo isset($_COOKIE['m_name'])? $_COOKIE['m_name']: isset($this->userdata)?$this->userdata[0]->first_name:'No Value'; 

錯誤:

注意:試圖讓非對象的屬性在/ home/...在線...

我不知道我缺少什麼?

任何幫助將不勝感激。

+0

我寧願沒有這樣多重合成三元運營商,因爲它是更好的可讀性。 – Alex2php

+0

謝謝@ Alex2php!但我必須理清這一點。 –

+0

謝謝@ Alex2php!問題解決了。現在我會遵循你的方法。 –

回答

3

我不知道,但我認爲這應該是

echo (isset($_COOKIE['m_name'])? $_COOKIE['m_name']: (isset($this->userdata)?$this->userdata[0]->first_name:'No Value')); 
+0

謝謝@Dmnik! :)它的工作很好..而你教我的基本知識,我失蹤了。保持。 SO最好的開始。快樂編碼:) –

+0

該死的好開始!太好了! ;-) –