php 回调函数的使用

1.定义与实例:
回调函数就是调动函数的时候,将另外一个函数的名称当作参数传递进去,并且在函数体内进行调用
(1)例1
function study(){
    echo "studying...<br/>";
}
function play(){
    echo "playing...<br/>";
}
function sing(){
    echo "singing...<br/>";
}
//回调函数
function doWhat($funcName){
    echo "我正在";
    //通过可变函数的形式进行调用
    $funcName();
}
//执行回调函数
doWhat('sing');
//返回结果
我正在singing...
(2)例2
function study($username){
    echo $username."is studying...<br/>";
}
function play($username){
    echo $username."is playing...<br/>";
}
function sing($username){
    echo $username."is singing...<br/>";
}
//回调函数
function doWhat($funcName,$username){
    //通过可变函数的形式进行调用
    $funcName($param);
}
//执行回调函数
doWhat('sing','oliver');
//返回结果
oliver is singing...
(3)例3
function add($x,$y){
    return $x+$y;
}
function reduce($x,$y){
    return $x-$y;
}
//回调函数
function calc($funcName,$i,$j){
    //通过可变函数的形式进行调用
    return $funcName($i,$j);
}
//执行回调函数
calc('add',1,2);
//返回结果
3
//执行回调函数
calc('reduce',1,2);
//返回结果
-1
2.php系统常用回调函数
(1)array_map –将回调函数作用到指定数组的单元上
<?php
function myfunction($v)
{
  return($v*$v);
}
$a=array(1,2,3,4,5,6);
print_r(array_map("myfunction",$a));
?>
(2)array_walk –对数组中的每个元素应用用户自定义函数:
<?php
function myfunction($value,$key)
{
echo "The key $key has the value $value<br>";
}
$a=array("a"=>"red","b"=>"green","c"=>"blue");
array_walk($a,"myfunction");
?>
(3)array_filter()–用回调函数过滤数组中的元素:
<?php
function test_odd($var)
{
return($var & 1);
}
$a1=array("a","b",2,3,4);
print_r(array_filter($a1,"test_odd"));
?>
有帮助(- 没帮助(-