功能istops过程

时间:2013-08-08 11:29:47

标签: php function

我有一个过程可以自行运行,但无法在函数中呈现任何信息。

这有效:

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();

1 个答案:

答案 0 :(得分:1)

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

此外,您的功能是echo而不是return HTML,因此您无需echo m3menu();只需调用m3menu();这样的函数,或者您可以return来自函数的HTML,然后echo输出值。

方法1

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);

方法2

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();