欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

PHP之回调函数类型传递方式

程序员文章站 2022-04-08 10:29:41
...
本文主要和大家分享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、匿名函数

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

相关推荐:

PHP回调函数及匿名函数使用详解

完全掌握js回调函数

PHP回调函数的解析

以上就是PHP之回调函数类型传递方式的详细内容,更多请关注其它相关文章!

相关标签: php 方式 传递