无法在php中调用函数

时间:2014-02-11 23:05:39

标签: php function

当我尝试调用我创建的函数时,它不会输出任何内容。如果我直接插入功能代码它可以正常工作,但是当调用该功能时,屏幕上没有任何显示。

<?php
    function MRYMENUCALL() {
        echo '<div class="menu_column Left">';
        foreach ($Menuitems as $Menuitem) {
            if ($Menuitem['Menu'] == 1) {
                if ($Menuitem['Column'] == 0) {
                    echo '<div class="menu_item" id="'
                        . $Menuitem['id']
                        . '" onmouseover="menu_expand(this.id);"><div class="menu_name Left">'
                        . $Menuitem['Name']
                        . '</div><div class="menu_price Right">'
                        . $MenuItem['Price']
                        . '</div><div class="menu_details Left" id="'
                        . $Menuitem['id']
                        . '"><div class="menu_description Left">'
                        . $Menuitem['Description']
                        . '</div>';
                    if ($Menuitem['Picture'] !=  NULL ){
                        echo '<div class="menu_picture"><img class="menu_image Right" src="/IMG/Menu/'
                            . $Menuitem['Picture']
                            . '"></div>';
                    }
                    echo '</div></div>';
                }
            }
        }
        echo '</div>';
    }

    //Left Menu
    MRYMENUCALL();
?>

2 个答案:

答案 0 :(得分:1)

$Menuitems最有可能超出此功能的范围。如果你去了你的日志文件,你很可能会看到一些告诉你的东西。您需要在使用它之前在该函数内定义它,或者将其作为参数传递给该函数。

此外,找到您的php.ini文件并将display_errors更改为1。此外,当您在那里时将html_errors设置为1并重新启动apache。它将开始在页面上输出错误,而不是安静地输出到日志。

答案 1 :(得分:0)

尝试运行代码时,您将获得(demo):

<div class="menu_column Left">
Warning: Invalid argument supplied for foreach() on line 4
</div>

因此,您应该将$Menuitems变量作为MRYMENUCALL()函数的参数传递。试试这段代码:

    <?php
// you define $Menuitems somewhere
// eg. $Menuitems = array(array('Menu' => 1, 'Column' => 0, 'id' => 1, 'Name' => Asd, 'Price' => 2, 'Picture' => asd));
        function MRYMENUCALL($Menuitems) {
            echo '<div class="menu_column Left">';
            foreach ($Menuitems as $Menuitem) {
                if ($Menuitem['Menu'] == 1) {
                    if ($Menuitem['Column'] == 0) {
                        echo '<div class="menu_item" id="'
                            . $Menuitem['id']
                            . '" onmouseover="menu_expand(this.id);"><div class="menu_name Left">'
                            . $Menuitem['Name']
                            . '</div><div class="menu_price Right">'
                            . $MenuItem['Price']
                            . '</div><div class="menu_details Left" id="'
                            . $Menuitem['id']
                            . '"><div class="menu_description Left">'
                            . $Menuitem['Description']
                            . '</div>';
                        if ($Menuitem['Picture'] !=  NULL ){
                            echo '<div class="menu_picture"><img class="menu_image Right" src="/IMG/Menu/'
                                . $Menuitem['Picture']
                                . '"></div>';
                        }
                        echo '</div></div>';
                    }
                }
            }
            echo '</div>';
        }

        //Left Menu
        MRYMENUCALL($Menuitems);
    ?>

工作演示:link on Codepad