理解回调函数

本文深入解析了回调函数的概念,包括其在PHP中的应用方式,以及如何通过不同形式(全局函数、匿名函数、对象方法和静态方法)调用回调函数。详细介绍了回调函数在主线程执行过程中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

回调函数

Callback(即call then back)被主函数调用后执行其他操作,然后再返回主函数的函数,称之这个被调用的函数为主函数的回调函数。

通俗的来说,回调函数是一个我们定义的函数,但是不是我们直接来调用,而是通过另一个函数来调用,这个函数通过接收回调函数的名字参数来实现对它的调用。

就是把函数作为参数传入进另一个函数中使用,被作为参数的函数称之为调用者的回调函数;

PHP的回调函数其实和C、Java等语言的回调函数的作用是一模一样的,都是在主线程执行的过程中,突然跳去执行设置的回调函数;回调函数执行完毕之后,再回到主线程处理接下来的流程;

php调用回调函数,不像c以及java那样直接使用函数名作为函数参数,而是使用函数对应的字符串名称执行

作用

作用:使用回调函数是为了可以将一段自己定义的功能传到函数内部使用

回调函数的形式

1、全局函数

function callback($val){
  //CODE...
}
function main($callback, $val){

  $callback($val);

}

main('callback', []);  # 这里是函数的字符串名称

函数callbak叫做函数main的回调函数

如:

call_user_func_array('callback');  # 这里是函数的字符串名称

2、匿名函数(闭包函数)

$closure = function ($var) {
   //CODE...

};

call_user_func_array($closure, []);  # 这里和全局函数不同的是,这里是匿名函数的变量

或者直接写,省去变量赋值

call_user_func_array(function(){
	//CODE...
}, []);

3、对象方法的数组调用形式


class T {

	public function bar($val) {


	};

	private function foo($val) {


	};

    // 类中使用回调
	public function main() {
	// 回调私有方法
		call_user_func_array([$this, 'foo'], [])
	};
};

//类外使用回调
call_user_func_array([new T, 'bar'], []);

类外 使用 new实例,类中 使用 $this

4、类静态方法的数组调用形式

class T  {
	public static function foo ($val) {
	
	
	}
}

//数组调用形式
call_user_func_array(['T', 'foo'], []);

或

//字符串形式
call_user_func_array('T::foo', []);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值