所谓匿名,就是没有名字。
匿名函数,也就是没有函数名的函数。
匿名函数的第一种用法,直接把赋数赋值给变量,调用变量即为调用函数。
匿名函数的写法比较灵活。
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; } ?>
因此,函名函数在调用的时候没有函数名。我们可以采用以上的一些方法来使用匿名函数。
水之蓝色5年前
<?php function woziji($one,$two,$func){ } echo $one + $two + $func($one,$two); } woziji(20,30,function( $foo , $bar){ $result = ($f
vec5年前
匿名变量没有函数名,通过变量加上括号来调用,这就是匿名函数 <?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; }); ?> 回调式的匿名函数就是回调时调用的函数是没有函数名的匿名函数
0
博龙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); } woziji(20,30,function( $foo , $bar){ $result = ($foo+$bar)*2; return $result; } ); ?>
<?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'); ?>
0
phpcn_u7227年前
<?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'); ?>
<?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'); ?>
0