php自定义函数之回调函数

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

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

这是变量函数和回调函数结合的一个章节。

<?php


function woziji($one,$two,$func){
       //我规定:检查$func是否是函数,如果不是函数停止执行本段代码,返回false
       if(!is_callable($func)){
               return false;
       }

       //我把$one、$two相加,再把$one和$two传入$func这个函数中处理一次
       //$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');

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

?>

处理过程是这样的:

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

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

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

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

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

    6.这样主得到了运算结果

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

继续学习
||
<?php function woziji($one,$two,$func){ //我规定:检查$func是否是函数,如果不是函数停止执行本段代码,返回false if(!is_callable($func)){ return false; } //我把$one、$two相加,再把$one和$two传入$func这个函数中处理一次 //$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'); //将plusx2改成jian试试结果 echo woziji(20,10,'jian'); ?>
提交重置代码
章节
笔记
提问
课件
反馈
捐赠

php入门教程之一周学会PHP

  • 推荐课程
  • 评论
  • 问答
  • 笔记
  • 课件下载
meleeZhao

meleeZhao

个人理解 :PHP 中的回调函数,在函数定义时,在函数里调用另一个函数,而另一个函数怎么传进来呢?这里用到了PHP 中的可变函数,函数的形参是一个变量,实参是字符串的函数名。

3年前    添加回复 1

回复
帅

函数名加的是引号‘’吧

4年前    添加回复 1

回复
最美的眼睛

最美的眼睛

在一个函数中调用另外一个函数,但是添加参数的时候不能直接写函数名加括号,所以先将形参变为函数名,再在输出的时候加括号调用外面的函数(这里就用到了变量函数)。

3年前    添加回复 0

回复
五险

五险

真不错,很棒!

3年前    添加回复 0

回复
phpcn_u70234

phpcn_u70234

感觉就是把一个函数1作为另一个函数2的形参来设置参数,然后判断一下函数1是否为函数,个人见解,不喜勿喷

3年前    添加回复 0

回复
小圈圈~

小圈圈~

这一章教学的讲解我感觉太专业,搞不懂,自己写了一遍代码之后有了自己的理解,然后我发到了笔记里,有需要的同学可以去看一下,我是已数学的方式来解答的,希望对大家有帮助

3年前    添加回复 0

回复

关于echo woziji(20,10,'jian');

[最新 vec 的回答]看到变量函数懂了

时间:3年前

回调函数有没有更通俗的讲解?

[最新 Jan 的回答]被你一说 更不懂了- -

时间:4年前

邢百贺

邢百贺

这节很重要。

3个月前 0

邢百贺

邢百贺

7.27 学习这章 没懂

3个月前 0

Smthie

Smthie

回调函数就是一个被作为参数传递的函数。

4个月前 0

浮世绘梦

浮世绘梦

??? 回调函数,可以配合匿名函数和变量函数实现更加优美、复杂的一种函数结构。 回调函数,就是在处理一个功能的时候,我让让这个功能自定义能力再强一些,我准许调用这个函数的时候,还可以传入一个函数配合、协助进行处理。 这是变量函数和回调函数结合的一个章节。

1年前 0

YuShine Wei

YuShine Wei

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

1年前 0

ì局外人

ì局外人

php自定义函数之回调函数

2年前 0

门前雪自扫

门前雪自扫

is_callable

2年前 0

Nanson

Nanson

回调函数:一个函数的形式参数的值为该函数体内变量函数的函数名时,存在函数回调现象。 类比可变变量==》 值与名的链接。

2年前 0

ʘᴗʘ

ʘᴗʘ

不懂

2年前 0

手机用户370364978

手机用户370364978

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

2年前 0

捧花人

捧花人

回调函数即是在一个函数里面,将另外1个函数作为其参数进行传入。

3年前 0

黄二铭

黄二铭

讲一个方法当作参数传递到另一个函数内执行,增加函数的功能性,减少代码重复率。需要注意的是要多方法参数进行判断,以免错误调用。

3年前 0

Stu

Stu

<?php function Myself($one,$two,$func){ // examine that if a function,if not,cease execute these code,return false. if(!is_callable($func)){ return false; } echo $one+$two+$func($one,$two); } //Sum the $one and $two,and then pass them into the function($func) execute it. //$func is a Variable function // let us define several function and try function plusx2($foo,$bar){ $result=($foo+$bar)*2; return $result; function minus($one,$two){ $result=($foo-$bar); return $result; } //call function,Myself,Pass the parament into the function, and try it. echo Myself(20,10,'plusx2'); echo Myself(20,10,'minus'); ?> 处理过程: 1.将para1,para2赋值给$one,$two,再将变量函数Varibale function assigned to $function 2.在回调函数中判断第三个元素是否为函数,不是则return false 并停止执行 3.如果是,则执行代码段,并将para1,para2带入变量函数中 4.$func是可变的,可以是不同的函数,将para1,para2赋值给变量函数的para1,para2 5.执行后将结果返回至回调函数中 6.得到运算结果 回调函数即子啊一个函数里面,在传入函数名,将函数名加上括号,识别为变量函数配合执行

3年前 0

玉面小白狼

玉面小白狼

这里好难我要记下来

3年前 0

注释

注释

这个先放下~回过头来再仔细看!!!

3年前 0

课件暂不提供下载,工作人员正在整理中,后期请多关注该课程~