2013-02-25 47 views
-1

好吧,我有一个我的网站的注册表。elseif块中的代码部分运行时,它不应该

当出现错误时弹出一个包含错误的框。该框由一个html div,一个h2头文件和php回应我的错误组成。

如果我点击提交,它显示错误应该是这样,但不管怎样,标题和div都会显示出来。

我不明白为什么。

这里是回声错误的代码块。

} else if (!empty($errors)){ 
    echo '<div class="msg_module">'; 
    echo '<h2>Registration Errors:</h2>'; 
    echo $General->outputErrors($errors); 
    echo '</div>'; 
} 

谢谢大家!

编辑:我应该提及$ errors是一个数组。

编辑:我的网络回来,这里是outputErrors功能:

public function outputErrors($errors = ''){ 

     if(is_array($errors)){ 
      // handle for passed array 
      foreach ($errors as $error){ 
       if(is_array($error)){ 
        general::outputErrors($error); 
       } else{ 
       general::$errStr.= ($error != '')?'<li>'.$error.'</li>':''; 
       } 
      } 
     } else if($errors != ''){ 
     // handle for passed string 
     general::$errStr = $errors; 
     } 
    return '<ul id="error_list">'.general::$errStr.'</ul>'; 
}//outputErrors 
+2

'$ errors'显然不是空的。 - 只是回声$错误,看看有什么。 – John3136 2013-02-25 01:09:47

+0

它所说的是'数组'。 – Nifty62 2013-02-25 01:12:34

+0

所以你可能需要使用“数组长度”而不是“空”的PHP版本(目前不做PHP,所以我没有与细节脱节) – John3136 2013-02-25 01:15:29

回答

0

使用var_dump($errors);,你可能会看到该变量不为空。

从你的评论,我假设变量是阵列的

阅读PHP Manual for the empty function,你会看到它的空数组返回true(数组不包含任何元素)

现在请记住,如果变量为,则键入字符串,则大多数字符串都被视为非空。

+0

它有一个空的数组。不知道为什么它通过if语句填充,如果发现错误:$ error [] ='错误消息'; – Nifty62 2013-02-25 01:20:17

+0

'$ General-> outputErrors'是否以任何方式修改数组? – 2013-02-25 01:24:59

+0

我的电脑互联网出现故障,因此我无法向您显示,但需要将数组放入

  • 标签,然后放入无序列表中并将其返回。 – Nifty62 2013-02-25 01:29:11