php自定义函数之匿名函数

所谓匿名,就是没有名字。

匿名函数,也就是没有函数名的函数。

匿名函数的第一种用法,直接把赋数赋值给变量,调用变量即为调用函数。

匿名函数的写法比较灵活。

1.变量函数式的匿名函数

<?php
$greet = function($name)
{
 echo $name.',你好';
};
$greet('明天');
$greet('PHP中文网');
?>

上例中的函数体没有函数名,通过$greent加上括号来调用的,这就是匿名函数。

2.回调式的匿名函数

我们将之前的例子拿过来。实际使用场景中,我们要通过一个函数实现更多的功能。但是,我又不想专门定义一个函数。我们回顾一下,我们回调函数的例子:

<?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);

}

woziji(20,30,function( $foo , $bar){

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

               return $result;

           }
);
?>

仔细推理一下过程哟。只不过在之前的章节当中,plusx2换成了我们的匿名函数:

<?php

function( $foo , $bar){

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

       return $result;

}
?>

因此,函名函数在调用的时候没有函数名。我们可以采用以上的一些方法来使用匿名函数。


继续学习
||
<?php function( $foo , $bar){ $result = ($foo+$bar)*2; return $result; } ?>
提交重置代码
章节
笔记
提问
课件
反馈
捐赠

php入门教程之一周学会PHP

高并发千万级数据库系统解决方案
  • 推荐课程
  • 评论
  • 问答
  • 笔记
  • 课件下载
温如玉

温如玉

这个编辑器不行啊aaaaa

3年前    添加回复 0

回复
LEFAN

LEFAN

大括号后面的分号是什么意思阿? 解答:因为此大括号对应的是WOZIJI这个函数的调用,不要被中间的花括号混淆了

4年前    添加回复 0

回复
水之蓝色

水之蓝色

这里评论的字数设置太少了吧?不能超过300,意思还没表达完,就显示不了了,该改改了啊

4年前    添加回复 0

回复
水之蓝色

水之蓝色

<?php function woziji($one,$two,$func){ } echo $one + $two + $func($one,$two); } woziji(20,30,function( $foo , $bar){ $result = ($f

4年前    添加回复 0

回复
Wong

Wong

继续学习

4年前    添加回复 0

回复
τ、過客

τ、過客

$greet的变量后面是变量的值,所以大括号后面带分号

4年前    添加回复 0

回复
τ、過客

τ、過客

真的,大牛的世界你不懂

4年前    添加回复 0

回复
青草地

青草地

赋值就是建立函数,这操作我也是醉了。 PHP中的赋值原来这么强大!!!简直是万能语句啊

4年前    添加回复 0

回复
τ、過客

τ、過客

大括号后面的分号是什么意思阿?

4年前    添加回复 0

回复
τ、過客

τ、過客

echo $name.",你好";};这个具体是什么?

4年前    添加回复 0

回复
折印

折印

回楼下,在这是$greent的赋值

4年前    添加回复 0

回复
PHPer

PHPer

{ echo $name.',你好'; }; 我想问一下,为啥这个地方要加分号,其他函数为啥不加呢。

4年前    添加回复 0

回复
phpcn_u54803

phpcn_u54803

没有人发言吗?我发个言支持一下老师,谢谢

4年前    添加回复 0

回复

能否实现换行?

[最新 小草 的回答]""这样 

时间:3年前

浮世绘梦

浮世绘梦

??? 1.变量函数式的匿名函数

1年前 0

YuShine Wei

YuShine Wei

匿名函数,也就是没有函数名的函数。 1.变量函数式的匿名函数 2.回调式的匿名函数

2年前 0

吒哪

吒哪

1.变量函数 $greet=function($name){ }; 2.回调函数使用匿名函数

2年前 0

黄二铭

黄二铭

直接将方法实现,从而省略方法的声明。

3年前 0

vec

vec

匿名变量没有函数名,通过变量加上括号来调用,这就是匿名函数 <?php function Myself($one,$two,$func){ //Rules that examine if is function,if isn't a function cease this piece of code and return false if(!is_callable($func)){ return false; } // let $one plus $two ,and then pass $one and $two into this function and excute it // $func is a varibale function echo $one+$two+$func($one,$two); } Myself(20,30,function($foo,$bar){ $result=($foo+$bar)*2; return $result; }); ?> 回调式的匿名函数就是回调时调用的函数是没有函数名的匿名函数

3年前 0

博龙

博龙

<?php //匿名函数 $color = function($color){ echo '这是'.$color; }; $color('red'); echo '<br>'; $color('blue'); echo '<br>'; //变量函数 $name = 'dog'; function dog(){ echo '这是一条狗'; } $name(); echo $name; echo '<br>'; //回调函数 function fn($one,$two,$func){ echo $one + $two +$func($one,$two); } function func($foo,$bar){ $result = ($foo * $bar) / 2; return $result; } fn(10,20,'func'); ?>

4年前 0

博龙

博龙

<?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); } woziji(20,30,function( $foo , $bar){ $result = ($foo+$bar)*2; return $result; } ); ?>

4年前 0

girl

girl

写匿名函数,记得加分号

4年前 1

phpcn_u722

phpcn_u722

<?php //回调式的匿名函数 $fn = function($one,$two,$func){ echo $one + $two + $func($one,$two); }; function func($foo,$bar){ $result = $foo / 2 + $bar * 2; return $result; } $fn(10,20,'func'); ?>

5年前 0

phpcn_u722

phpcn_u722

<?php //匿名函数 $color = function($color){ echo '这是'.$color; }; $color('red'); echo '<br>'; $color('blue'); echo '<br>'; //变量函数 $name = 'dog'; function dog(){ echo '这是一条狗'; } $name(); echo '<br>'; //回调函数 function fn($one,$two,$func){ echo $one + $two +$func($one,$two); } function func($foo,$bar){ $result = ($foo * $bar) / 2; return $result; } fn(10,20,'func'); ?>

5年前 1

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