-1

谁能告诉我这个功能有什么问题?

我编写了这个函数来从 $reg_errors 数组中获取错误,并在同一个脚本中的不同位置使用这些错误。

function testimonialErrors ($reg_errors) {
    if ( !empty($reg_errors) ) {
            foreach ( $reg_errors AS $error) {
                echo "<li>$error</li>";
            }                                       
    }
    return $error; 
}

然后我像这样调用那个函数..

if ( !empty($reg_errors) ) {
    echo '<div class="error">
                <img src="images/error.png" />
                <h3>Errors,</h3>
                <ul>';
                echo testimonialErrors($reg_errors);
        echo '</ul>
            </div>';
}

但是这段代码不起作用。

更新:这是我的新代码

function tesimonialErrors ($reg_errors) {
    if ( !empty($reg_errors) ) {
            foreach ( $reg_errors AS $error) {
                echo "<li>$error</li>";
            }                                       
    }
    return $error; 
}

并这样称呼它

if ( !empty($reg_errors) ) {
    echo '<div class="error">
                <img src="images/error.png" />
                <h3>Errors,</h3>
                <ul>';
                tesimonialErrors($reg_errors);
        echo '</ul>
            </div>';
}
4

5 回答 5

4

您应该查看变量范围。此时,$reg_errors未定义在您的函数范围内。您可以将其传递给函数:

function tesimonialErrors ($reg_errors) {
  ...

并称之为:

tesimonialErrors($reg_errors);
于 2013-02-07T12:57:01.960 回答
0

为什么不这样做呢?

if ( !empty($reg_errors) ) {
    echo '<div class="error">
            <img src="images/error.png" />
            <h3>Errors,</h3>
            <ul>
               <li>';
    echo implode('</li><li>', $reg_errors);
    echo '    </li>
            </ul>
        </div>';
}
于 2013-02-07T14:12:18.280 回答
-1

正如@Akam 指出的那样, $reg_errors 在全局范围内,因此您需要使用global $reg_errors;or $GLOBALS['reg_errors']

另外我建议将函数名称更改tesimonialErrors为正确的英文(我假设会是testimonialErrors)。否则,The Next Guy 可能最终会将其发布在 TDWTF 上。

于 2013-02-07T13:00:43.777 回答
-1
function testimonialErrors ($reg_errors) {
    if ( !empty($reg_errors) ) {
            foreach ( $reg_errors AS $error) {
                echo "<li>$error</li>";
            }                                       
    }
    return $error;  // ****remove return statement**** 
}
于 2013-02-07T13:47:36.270 回答
-2

添加global $reg_errors;到您的功能。

function testimonialErrors () {
    global $reg_errors;
    if (!empty($reg_errors)) {
        foreach ($reg_errors as $error) {
            echo "<li>$error</li>";
        }
    }
}
于 2013-02-07T12:57:10.693 回答