什么是闭包,。

原创2018-11-12 13:57:28113
摘要:1、闭包函数, 使用 use 语句的匿名函数才可以是闭包函数。$belle = "小明";$demo2 = function ($name) use ($belle){    return $name . '最爱的人是'.$belle;};echo $demo2('小红') 2、匿名函数,没有名字

1、闭包函数, 使用 use 语句的匿名函数才可以是闭包函数。

$belle = "小明";

$demo2 = function ($name) use ($belle){

    return $name . '最爱的人是'.$belle;

};

echo $demo2('小红') 

2、匿名函数,没有名字的函数。就是把一个函数赋值给一个变量。

$demo3= function ($name){

    return $name;

};

闭包的写法:

 1、在函数中调用一个匿名函数。

function demo3(){

$belle = '小红';

$demo4 = function ($name) use($belle){

    return $name . '最爱的人是'.$belle;

};

return $demo4('小李子');

};

echo demo3();

2、将匿名函数当做参数来使用。

$belle = '我';

$demo5 = function ($name) use($belle){

    return $name . '最爱的人是'.$belle;

};

$demo6 = function ($demo5){

    return $demo5("小红");

};

echo $demo6($demo5);

3、将匿名函数当做返回值来使用。

$demo8 = function (){

    $belle = '我';

    $demo7 = function ($name) use($belle){

    return $name . '最爱的人是'.$belle;

};

return $demo7;

};

echo $demo8()('小红');

问题:  这三种写法的都有什么好处呢? 我应该如何判断在什么场景使用那种的闭包方法才是正确的呢或者是最合理的呢?

批改老师:天蓬老师批改时间:2018-11-12 14:01:45
老师总结:闭包,就是一个有使用场景限制的函数,也是对功能的封装. 当需要将一个函数做为参数进行传递的时候,可以使用闭包,或者在一个函数的外部,访问函数的局部变量的时候,可以通过闭包将参数返回

发布手记

热门词条