A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

我们这里通过array_map()函数来进行测试
方式1、全局函数

function foo($val){
        return intval($val)+1;
}

$arr = array('a',2,'b',5,'c',7);
//回调函数传递方式
$res = array_map('foo', $arr);
/**
输出如下:
array (size=6)
  0 => int 1
  1 => int 3
  2 => int 1
  3 => int 6
  4 => int 1
  5 => int 8
*/

方式2、类公有函数
class Demo {
        public function foo($val){
                return intval($val)+1;
        }
}

$arr = array('a',2,'b',5,'c',7);
//回调函数传递方式
$res = array_map(array(new Demo, 'foo'), $arr);

方式3、类私有函数
class Demo {
        private function foo($val){
                return intval($val)+1;
        }

        public function test(){
                $arr = array('a',2,'b',5,'c',7);
        //回调函数传递方式
                $res = array_map(array($this, 'foo'), $arr);
                return $res;
        }
}

$demo = new Demo;
$result = $demo->test();

方式4、类公有静态方法


class Demo {  
    static public function foo($val){  
        return intval($val)+1;  
    }  
}  

$arr = array('a',2,'b',5,'c',7);  
//回调函数传递方式  以下两种方式都可以
$res = array_map('Demo::foo', $arr);
//$res = array_map(array('Demo', 'foo'), $arr);  

方式5、类私有静态方法


class Demo {
        static private function foo($val){
                return intval($val)+1;
        }

        static public function test(){
                $arr = array('a',2,'b',5,'c',7);
        //回调函数传递方式  这里可以使用两种传递方式
                $res = array_map(array('self', 'foo'), $arr);
                //$res = array_map('self::foo', $arr);
                //$res = array_map(array('Demo', 'foo'), $arr);
                //$res = array_map('Demo::foo', $arr);
                return $res;
        }
}

$result = Demo::test();

方式6、匿名函数
$foo = function($val){
return intval($val)+1;
};
$arr = array('a',2,'b',5,'c',7);
//回调函数传递方式
$res = array_map($foo, $arr);

---------------------
【转载】
作者:奇幻屋
原文:https://blog.csdn.net/u014236259/article/details/78348079


3 个回复

倒序浏览
ヾ(◍°∇°◍)ノ゙
回复 使用道具 举报
回复 使用道具 举报
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马