elseif块中的代码部分运行时不应该

时间:2013-02-25 01:06:37

标签: php if-statement

好的,我的网站有一个注册表。

当出现错误时弹出一个包含错误的框。该框由一个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

1 个答案:

答案 0 :(得分:0)

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

根据您的评论,我假设变量是类型数组

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

现在请记住,如果变量是类型字符串,那么大多数字符串都被视为非空。