2012-01-29 41 views
1

我知道這種有點像一個愚蠢的問題,並與更多的研究,我可能能夠找到答案,但我有一個截止日期,請大家幫忙。isset是否可以使用GET?

使用codeigniter im試圖看看'ID'在URL是'UID'(用戶ID)或'sID'(系統ID)。

使用的代碼IM是:

if(isset($this->input->get('uID'))) { 
     $getID = $this-input->get('uID'); 
    } else { 
     $getID = $this->input->get('sID'); 
    } 

當我使用,我得到了一個服務器錯誤說網站暫時關閉或正在建設必須。有任何想法嗎?

在此先感謝您的幫助。通常我會花更多的時間自己尋找答案,但我今晚沒有時間。

回答

3

您收到的警告可能是500錯誤 - 表示您的服務器未設置爲向您顯示錯誤,或者您沒有在index.php文件中啓用它。

你得到的錯誤,但沒有看到是:「致命錯誤:不能在寫入上下文中使用函數返回值」,因爲你不能在函數上使用isset。

如果可以的話,它不會做你期望的,因爲CI的$this->input->get('key')總是返回一個值 - 如果該鍵不存在,它將返回false。

因此,要完成什麼,似乎你想要做的,你會寫:

$getID = $this->input->get('uID') ? $this->input->get('uID') : $this->input->get('sID'); 

基於下面的評論,我想我還需要提供它在某種程度上是有道理的給你:

if($this->input->get('uID')) { 
    $getID = $this->input->get('uID'); 
} 
else { 
    $getID = $this->input->get('sID'): 
} 

這兩種解決方案在功能上是一樣的。

+0

好的,有效。謝謝。我不明白你的代碼。什麼是'?' – 2012-01-29 04:39:49

+0

'條件? execute_if_the_condition_was_true:exe_if_condition_false' ...調用三元運算符 – Erik 2012-01-29 04:46:02

+0

是否將$ getID設置爲sID,如果uID未設置? – 2012-01-29 04:49:06

2

isset僅適用於變量
$this->input->get()是一個函數調用。這給你一個錯誤。

我猜想,如果uID未在請求中設置,$this->input->get將返回nullfalse或一些這樣的。即你不需要isset,返回值應該已經是falsey

我建議你花費很少的時間閱讀The Definitive Guide To PHP's isset And empty