2013-02-11 56 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