search
  • Sign In
  • Sign Up
Password reset successful

Follow the proiects vou are interested in andi aet the latestnews about them taster

首页课程PHP Fun Breakthrough ClassCustom function callback function

Custom function callback function

目录列表

回调函数

回调函数,可以配合匿名函数和变量函数实现更加优美、复杂的一种函数结构。

回调函数,就是在处理一个功能的时候,我让这个功能自定义能力再强一些,我准许调用这个函数的时候,还可以传入一个函数配合、协助进行处理。

实例:

<?php

function woziji($one,$two,$func){
       //我规定:检查$func是否是函数,如果不是函数停止执行本段代码,返回false
       if(!is_callable($func)){
               return false;
       }
       //我把$one、$two相加,再把$one和$two传入$func这个函数中处理一次
       echo $one + $two + $func($one,$two);
}

//我们定义几个函数试试
function plusx2( $foo , $bar){

       $result = ($foo+$bar)*2;

       return $result;
}

function jian( $x , $y ){
   $result = $x - $y;

   return $result;
}

//调用一下函数,woziji,向里面传入参数试试
echo woziji(20,10,'plusx2') .'<br>'; // 90

//将plusx2改成jian试试结果
echo woziji(20,10,'jian'); // 40

?>

以上的实例代码可能一下会看不懂,不要着急,下面我们来详细的讲解一次上面的代码处理过程是怎样的:

  • 将20赋值给形参$one,10赋值给了$two,而plusx2或者jian这两个变量函数,赋值给了$func

  • 在woziji这个函数中判断plusx2或者jian是否为函数,不是函数就return false 停止执行了

  • 显示plusx2或者jian是函数。因此$one = 20, $two =10相加了,相加后,$one和$two又带入到了了$func($one,$two)中。

  • 带入至里面后而$func,是可变的,可以为plusx2或者jian。如果为plusx2的话,$one = 20,$two = 10 的这个两个结果又给了plusx2函数里面的$foo和$bar

  • $foo + $bar 乘以2后将结果返回至woziji这个函数功能体的运算处:$one + $two + $func($one,$two);

  • 这样主得到了运算结果

现在我们明白了回调函数:在一个调数里面,再传入一个函数名,将函数名加上()括号。识为变量函数,配合执行。

实际上自己也是可以调用自己。

很简单的一道数学题,填写下面的正确答案。

<?php function jisuan($one,$two,$func){ if(!is_callable($func)){ return false; } echo $one * $two - $func($one,$two); } function jian( $foo , $bar){ $result = $foo-$bar; return $result; } echo jisuan(5,7,'jian'); ?> //结果

1/2