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

レックスが言うように、変数は関数のスコープでは使用できません。関数を呼び出すときにそれらを関数に渡すか、使用することができますglobal

また、関数はHTMLをechoing ではなくing しているため、 のように関数を呼び出す必要はありません。または、関数から HTML を呼び出して値を出力することもできます。returnecho m3menu();m3menu();returnecho

方法 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();
于 2013-08-08T11:45:09.490 に答える