本文主要和大家分享PHP之回调函数类型传递方式,我们这里通过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、匿名函数
立即学习“PHP免费学习笔记(深入)”;
$foo = function($val){
return intval($val)+1;
};
$arr = array('a',2,'b',5,'c',7);
//回调函数传递方式
$res = array_map($foo, $arr);相关推荐:
以上就是PHP之回调函数类型传递方式的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号