摘要://匿名函数$demo1 = function ($name){ return $name . '喜欢吃饺子';};echo $demo1('张珊珊'),'<hr>';$bian = '李四';$demo2 = function ($name) use ($bian){
//匿名函数
$demo1 = function ($name){
return $name . '喜欢吃饺子';
};
echo $demo1('张珊珊'),'<hr>';
$bian = '李四';
$demo2 = function ($name) use ($bian){
return '爱吃饺子的人是:'.$name.'和'.$bian;
};
echo $demo2('王五'),'<hr>';
//匿名函数其实是普通变量,
//1、匿名函数当作局部变量来使用形成闭包
$func1 = function (){
$name = '张三';
$test = function () use ($name){
return $name . '最爱看晚霞';
};
//调用,必须执行才能形成闭包
return $test();
};
echo $func1(),'<hr>';
//2、将匿名函数当作函数的参数使用
$name = '张三';
$test = function () use ($name){
return $name . '昨天上山去打老虎去了';
};
$func2 = function (callable $test){//加上参数类型以区分是匿名函数当作参数
return $test();
};
echo $func2($test),'<hr>';
//3、将匿名函数当作函数的返回值
$func3 = function (){
$name = '张三';
$test = function () use ($name){
return $name . '最讨厌吃橘子';
};
//返回函数声明
return $test;
};
//当匿名函数当作函数返回值时,在调用时在正常函数调用后再加一对圆括号,以声明调用被当作返回值的匿名函数
//这种调用方法在php7.0之前的版本不能使用
//echo $func3()() , '<hr>';
//在php5.3-php5.6的调用方法
function demo66(){
$name = '张虎';
$test = function () use ($name){
return $name . '最怕他娘念叨他';
};
//返回函数声明
return $test;
};
$func4 = demo66();//函数返回匿名函数
echo $func4(),'<hr>';//使用$func4()调用
//闭包执行条件:1、必须定义匿名函数;2、必须调用匿名函数
//4、返回匿名函数传参
function demo77(){
$num = 10;
$func = function ($name) use ($num){
return $name . '有' . $num . '个苹果';
};
return $func;
}
$func5 = demo77();
echo $func5('张图'),'<hr>';
批改老师:韦小宝批改时间:2018-11-16 11:07:46
老师总结:不错啊!不过下次代码记得高亮哦!课后还可以多找点类似这种的案例来多多练习还是挺不错的!加油吧!!