0

我有一个过程,它自己工作得很好,但无法从函数中呈现任何信息。

这有效:

if ($totalRows_menu > 0) {
    echo "<ul>";
    while($row_menu = mysql_fetch_array($menu)) {
        echo "<li>" . $row_menu['m3menu_item'] . "</li>";
    }
    echo "</ul>";
    }

但这不是:

function m3menu()
{
if ($totalRows_menu > 0) {
    echo "<ul>";
    while($row_menu = mysql_fetch_array($menu)) {
        echo "<li>" . $row_menu['m3menu_item'] . "</li>";
    }
    echo "</ul>";
    }
}
echo m3menu();
4

1 回答 1

1

正如 Lex 所说,您的变量在函数范围内不可用。您可以在调用时将它们传递给函数,也可以使用global

此外,您的函数是echoing 而不是returning HTML,因此您无需echo m3menu();像 那样调用函数m3menu();,或者您可以return从函数中获取 HTML,然后再echo输出值。

方法一

function m3menu( $totalRows_menu, $menu )
{
    if ($totalRows_menu > 0) {
        echo "<ul>";
        while($row_menu = mysql_fetch_array($menu)) {
            echo "<li>" . $row_menu['m3menu_item'] . "</li>";
        }
        echo "</ul>";
    }
}

m3menu($totalRows_menu, $menu);

方法二

function m3menu()
{
    global $totalRows_menu;
    global $menu;

    if ($totalRows_menu > 0) {
        echo "<ul>";
        while($row_menu = mysql_fetch_array($menu)) {
            echo "<li>" . $row_menu['m3menu_item'] . "</li>";
        }
        echo "</ul>";
    }
}

m3menu();
于 2013-08-08T11:45:09.490 回答