簡體   English   中英

為什么這個array_filter方法沒有調用這個函數?

[英]Why this array_filter method not calling this function?

private static function returnSameElementIfNotEmpty($item) {
    if (empty($item)) {
        return false;
    }
    else{
        return true;
    }
}


public static function clean($array) {
    return array_filter($array, 'returnSameElementIfNotEmpty');
}

當我嘗試使用示例數組運行時,我得到:

警告:array_filter()要求參數2是有效的回調函數,函數'returnSameElementIfNotEmpty'未找到,或者在第27行的C:\\ Framework \\ ArrayMethods.php中找到無效的函數名稱

試試這個:

return array_filter($array, array(__CLASS__, 'returnSameElementIfNotEmpty'));

發生錯誤是因為您沒有調用類方法。 但只是一個具有該名稱的函數。 在上面的例子中,我使用CLASS作為類類型來訪問靜態函數returnSameElementIfNotEmpty

很好,在未提及的文檔中。

array( CLASS ,'returnSameElementIfNotEmpty')解決警告問題

更優雅:

$ArrModEmpty = array_filter($array, function($Arr){
                return (empty($Arr));
            });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM