2013-02-11 43 views
2

我需要isset!=''在一個條件,如果我不使用isset它給出了警告,我需要!=''其他條件。所以我需要同時使用既需要isset和!='

下面的代碼工作正常,但不會返回其他,但是當我將isset($array['1']['name']更改爲($array['1']['name'] !=''時,則返回else條件。

if(isset($array['1']['name'])) { 
    $this->output('<li class="name">',$array['1']['name'],'</li>'); 
} 
else{ 
    $this->output('<li class="name">',$other,'</li>'); 
} 
+0

你確定''1''是一個字符串? – 2013-02-11 16:35:07

+0

是的,有什麼問題嗎?如何改變? – user007 2013-02-11 16:38:44

+0

如果這是故意的,對數組鍵使用字符串數值似乎是一個奇怪的想法。爲了不使用字符串,簡單地把$ array [1] ['name'] – 2013-02-11 16:40:53

回答

6

使用&&運營商聯合isset()empty()

if(isset($array['1']['name']) && !empty($array['1']['name'])) { 
+0

如果某個值不存在,則不能進行測試,這會導致警告。 – 2013-02-11 16:35:47

+1

'empty()'不觸發undefined var notice,所以你可以堅持下去。雖然檢查'$ array'和'$ array [1]'是否存在仍然需要。 – Mchl 2013-02-11 16:36:19

+0

我不知道。 – 2013-02-11 16:38:58