hp内置函数中很多用到了回调函数,像:
array_filter — 用回调函数过滤数组中的单元。
array_diff_ukey — 用回调函数对键名比较计算数组的差集。
这里的回调函数好像和普通函数没什么区别,求解,php回调函数是什么样子的?靠什么原理运行?
回调函数就是那些自己写的,但是不是自己来调,而是给别人来掉的函数。
就像下面的odd()和even()函数一样。<?php
function odd($var)
{
return($var % 2 == 1);
}
function even($var)
{
return($var % 2 == 0);
}
$array1 = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
$array2 = array(6, 7, 8, 9, 10, 11, 12);
echo "Odd :\n";
print_r(array_filter($array1, "odd"));//这里把array1的值依次传入到odd这个函数里面,这种方式就称为回调
echo "Even:\n";
print_r(array_filter($array2, "even"));
?>
下面这个例子实现函数的回调
function fnCallBack($msg1, $msg2)
{
echo 'msg1:'.$msg1;
echo '
';
echo 'msg2:'.$msg2;
}
$fnName = 'fnCallBack';//函数名
$params = array('hello', 'world');//将要传入到函数里面的参数
call_user_func_array($fnName, $params);
?>