匿名函数以及闭包

原创 2018-12-13 10:47:07 256
摘要:<?php /**  * 回调函数  * 1.匿名函数相当于一个变量,在另一个函数中调用匿名函数  * 2.在一个函数中调用一个普通函数 **/ $add=function($a,$b){     return "$a+$b=".($a+$b); }; echo&
<?php
/**
 * 回调函数
 * 1.匿名函数相当于一个变量,在另一个函数中调用匿名函数
 * 2.在一个函数中调用一个普通函数
**/
$add=function($a,$b){
    return "$a+$b=".($a+$b);
};
echo call_user_func_array($add,[50,20]).'<hr>';
//闭包函数(匿名函数当作局部变量,函数参数,函数返回值)
//1.当作局部变量
$func1=function($name2){
    $name1='美国';
    $situation=function() use($name1,$name2){
        return $name1.'采用恶劣手段遏制'.$name2.'科技的发展';
    };
    return $situation();
};
echo $func1('中国').'<hr>';
//2.当作函数参数
$name2='中国';
$name1='美国';
$situation=function() use($name1,$name2){
    return $name1.'采用恶劣手段遏制'.$name2.'科技的发展';
};
$func1=function(callable $a){
    return $a();
};
echo $func1($situation).'<hr>';
//3.当作函数返回值
$func1=function($name2){
    $name1='美国';
    $situation=function() use($name1,$name2){
        return $name1.'采用恶劣手段遏制'.$name2.'科技的发展';
    };
    return $situation;
};
echo $func1('中国')().'<hr>';

总结:这几节课涉及的知识点:匿名函数的概念、函数参数、回调函数以及闭包的使用。匿名函数类似于一个变量,只是这个变量的值是一个函数的定义。回调函数就是在一个函数调用另一个函数,这个函数是以参数的形式传入的,也叫函数注入。闭包最常见的是匿名函数的三种应用场景,当作局部变量,函数的参数,函数的返回值,当为函数的返回值时,返回的是一个函数的定义,而前两种的匿名函数必须要执行才可以形成闭包。

运行结果:test2.png

批改老师:韦小宝批改时间:2018-12-13 11:26:37
老师总结:写的很不错!条例清晰!注释完整!很棒!继续加油吧!

发布手记

热门词条