搜尋

首頁  >  問答  >  主體

HP通知:PHP警告:在plugin.php中提供了無效的參數供foreach()使用

我的錯誤日誌中出現了大量錯誤。 有人知道如何解決這個問題嗎?

它們都是一樣的:

[Mon Jun 27 12:39:xx.518352 2022] [proxy_fcgi:error] [pid 4663:tid 139793920644864] [client 84.80.28.xx:52348] 0864] [client 84.80.28.xx:52348] 發生錯誤: 」為第1779 行/home/685947.example.com/public_html/wp-admin/includes/plugin.php 中的foreach() 提供的參數,引用位址:https://example.com/mijn-account/

這是程式碼(預設 WordPress 檔案):

function remove_menu_page( $menu_slug ) {
    global $menu;

    foreach ( $menu as $i => $item ) {
        if ( $menu_slug === $item[2] ) {
            unset( $menu[ $i ] );
            return $item;
        }
    }

    return false;
}

P粉561749334P粉561749334402 天前591

全部回覆(2)我來回復

  • P粉553428780

    P粉5534287802023-12-14 10:45:50

    變數 ($menu) 接收的值可能不是陣列。

    添加驗證會很有趣,例如:

    function remove_menu_page( $menu_slug ) {
        global $menu;
        
        if (!is_array($menu)) return false;
    
        foreach ( $menu as $i => $item ) {
            if ( $menu_slug === $item[2] ) {
                unset( $menu[ $i ] );
                return $item;
            }
        }
    
        return false;
    }

    回覆
    0
  • Jenson.Wang

    Jenson.Wang2023-12-15 11:36:25

    變數 ($menu) 可能是個空數組

    function remove_menu_page( $menu_slug ) {    
        global $menu;    
        if(!empty($menu)){ 
            foreach ( $menu as $i => $item ) {        
                if ( $menu_slug === $item[2] ) {            
                    unset( $menu[ $i ] );            
                    return $item;        
                }   
            }  
        }  
      return false;
    }

    #

    回覆
    0
  • 取消回覆