2014-02-11 56 views
0

當我嘗試調用我創建的函數時,它不會輸出任何內容。如果我直接插入功能代碼,它可以正常工作,但在調用該功能時屏幕上不會顯示任何內容。無法在PHP中調用函數

<?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(); 
?> 
+0

你檢查了你的PHP日誌,看看是否有什麼問題嗎? –

+2

我的猜測是$ menuitems不在函數的範圍內。嘗試放入「全球$ menuitems;」作爲你的功能的第一行。 – Ben

+0

@Ben這是我的問題,非常感謝! – user3299367

回答

1

$Menuitems最有可能超出此功能的範圍。如果你去了你的日誌文件,你很可能會看到一些告訴你的東西。在使用它之前,您需要在該函數中定義它,或者將其作爲參數傳遞給該函數。

此外,找到您的php.ini文件並將display_errors更改爲1。另外,在您進入並重新啓動apache時,將html_errors設置爲1。它將開始在頁面上輸出錯誤,而不是安靜地輸出到日誌中。

0

當試圖運行你的代碼,你會得到(demo):

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

所以,你應該通過$Menuitems變量MRYMENUCALL()功能的paremeter。試試這個代碼:

<?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