先看一下C语言里的回调函数:回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。
这个函数存在的最大意义:
其他语言里的回调函数的概念与之相似,只不过各种语言里回调函数的实现机制不一样,通俗的来说,回调函数是一个我们定义的函数,但是不是我们直接来调用,而是通过另一个函数来调用,这个函数通过接收回调函数的名字和参数来实现对它的调用。
这个函数存在的最大意义:
把回调函数写成了参数,参数就意味着可以是一个变量,而在程序中如果回调函数是变量那么这个函数名可以根据程序来实时控制从而把参数传递给不同的回调函数数
实例:
function sayEnglish($fName, $content) {
echo 'I am ' . $content;
}
function sayChinese($fName, $content, $country) {
echo $content . $country;
echo "<br>";
}
function say() {
$args = func_get_args();
call_user_func_array($args[0], $args);
}
say('sayChinese', '我是', '中国人');
say('sayEnglish', 'Chinese');
//这里指的是非客户端php脚本
function sum($first,$second){
$args = func_get_args(); //获取列表
//func_get_arg($index) 则获取指定的位置的参数
$len = func_num_args(); //获取长度
$sum = 0 ;
foreach($args as $key=>$val){
$sum += (int) $val;
}
return $sum;
}
$rs = sum(1,2,3,4,5);
var_dump($rs); // int 15
//注意: 在sum函数中修改了$first,$second的变量,同时又不是引用对象 变量的话,则不会修改