Php 为什么此数组\过滤器方法不调用此函数?
当我尝试使用示例数组运行此命令时,我得到: 警告:array\u filter()要求参数2为有效回调,在第27行的C:\Framework\ArrayMethods.php中未找到函数“returnSameElementIfNotEmpty”或函数名无效Php 为什么此数组\过滤器方法不调用此函数?,php,callback,array-filter,Php,Callback,Array Filter,当我尝试使用示例数组运行此命令时,我得到: 警告:array\u filter()要求参数2为有效回调,在第27行的C:\Framework\ArrayMethods.php中未找到函数“returnSameElementIfNotEmpty”或函数名无效 private static function returnSameElementIfNotEmpty($item) { if (empty($item)) { return false; } else
private static function returnSameElementIfNotEmpty($item) {
if (empty($item)) {
return false;
}
else{
return true;
}
}
public static function clean($array) {
return array_filter($array, 'returnSameElementIfNotEmpty');
}
发生错误的原因是您没有调用类方法。但只是一个有这个名字的函数。在上面的示例中,我使用CLASS作为类类型来访问静态函数
returnSameElementIfNotEmpty
非常好,在未提及的文档中
数组(CLASS,'returnSameElementIfNotEmpty')解决警告问题
更优雅:
return array_filter($array, array(__CLASS__, 'returnSameElementIfNotEmpty'));
我尝试了如下方法:returnarray_filter($array,CLASS.'::returnSameElementIfNotEmpty');它是有效的,但为什么会这样呢?看我的答案,我添加了一小部分。我尝试了self::returnSameElementIfNotEmpty(),这也没有帮助吗?
$ArrModEmpty = array_filter($array, function($Arr){
return (empty($Arr));
});