thinkphp5 中使用array_filter函数

thinkphp5 中使用array_filter函数,第二个参数出错,请教大神要怎样修改。谢谢

<?php  
namespace app\controller;  
class Abs
{
    public function index(){
        function abc($value){
            if($value!==''){
                return true;
            }else{
                return false;
            }
        }

        $data = [
            'a'=>1,
            'b'=>0,
            'c'=>true,
            'd'=>false,
            'e'=>0,
            'f'=>'',
            'd'=>null
        ];
    
        return array_filter($data,'abc');
    }
}

报错:
array_filter() expects parameter 2 to be a valid callback, function 'abc' not found or invalid function name

达令说
浏览 797回答 4
4回答

小唯快跑啊

和 namespace 有关,指定下namespace就可以了。 return array_filter($data,'\app\controller\abc');

喵喔喔

你完全可以这样写 public function index(){ $data = [ 'a'=>1, 'b'=>0, 'c'=>true, 'd'=>false, 'e'=>0, 'f'=>'', 'd'=>null ]; return array_filter($data,function($value){ if($value!==''){ return true; }else{ return false; } }); }

饮歌长啸

具体报错信息是什么?

湖上湖

第二个参数要求是一个回调函数,abc没有这个函数function abc(){return true;};
打开App,查看更多内容
随时随地看视频慕课网APP