4
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 の無効な関数名です

4

3 に答える 3

6

これを試して:

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

クラスメソッドを呼び出さないため、エラーが発生します。しかし、その名前の関数だけです。上記の例では、静的関数にアクセスするためのクラス タイプとしてCLASSreturnSameElementIfNotEmptyを使用しています。

于 2013-01-24T17:34:53.290 に答える
1

優れています。ドキュメントには記載されていません。

array( CLASS , 'returnSameElementIfNotEmpty') は警告を解決します

よりエレガント:

$ArrModEmpty = array_filter($array, function($Arr){
                return (empty($Arr));
            });
于 2015-11-12T15:22:28.837 に答える