PHP函数-回调函数

Posted Sch01aR#

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP函数-回调函数相关的知识,希望对你有一定的参考价值。

回调函数是指调用函数的时候将另一个函数作为参数传递到调用的函数中,而不是传递一个普通的变量作为参数

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

声明回调函数的方法

变量函数声明

<?php
	function Calculate($num){
		for($i=0;$i<=10;$i++){
			if($num($i)){
				continue;
			}
			echo $i."nbsp";
		}
	}
	
	function Number_1($a){
		return $a%2 == 0; //打印不能被2整除的数
	}
	
	function Number_2($b){
		return $b >=6; //打印小于6的数
	}
	
	Calculate("Number_1");
	echo "<br>";
	Calculate("Number_2");
?>

 执行结果

call_user_func_array()函数

该函数需要两个参数。

第一个参数是要调用的函数名,第二个参数是数组类型,为参数列表。

参数列表的参数个数要和要调用的函数的参数个数相同

<?php
	function Speak($a,$b){
		echo "He can speak ".$a;
		echo "<br>";
		echo "She can speak ".$b;
	}
	
	function Speak_Test(){
		return call_user_func_array(\'Speak\',array(\'Chinese\',\'English\'));	
	}
	
	Speak_Test()
?>

 执行结果

类静态函数和对象

该方法回调函数也需要用到call_user_func_array()函数

<?php

	class Speaking{
		static function Speak($a,$b){
			echo "He can speak ".$a;
			echo "<br>";
			echo "She can speak ".$b;
			echo "<br>";
		}
	}
	
	class Writting{
		function Write($a,$b){
			echo "He can write ".$a;
			echo "<br>";
			echo "She can write ".$b;
		}
	}
	
	call_user_func_array(array("Speaking","Speak"),array("Chinese","English"));
	call_user_func_array(array(new Writting(),\'Write\'),array("German","Portuguese"));
?>

 类中的方法为静态,回调方法为

call_user_func_array(array("类名","类中的静态方法"))

类中的方法不为静态,回调方法为

call_user_func_array(array(对象引用,"对象中方法名"))

执行结果


·

以上是关于PHP函数-回调函数的主要内容,如果未能解决你的问题,请参考以下文章

array_map 等php回调函数使用问题(关联数组下标获取)

满足条件时是不是可以在 GLSL 着色器中回调 C/C++ 函数/代码? [关闭]

PHP回调函数及匿名函数概念与用法详解

前端面试题之手写promise

PHP回调函数

PHP回调函数及匿名函数概念与用法详解