摘要:/* * 匿名函数和闭包 * 1.在函数中调用一个匿名函数时 * 2.当匿名函数当做参数传递给函数时 * 3.当匿名函数当做函数返回值的时候 *///匿名函数$demo1 = function ($name){ return $name.'今年上大学了';};//调用匿名函数echo $demo1('晴').'<hr>&
/*
* 匿名函数和闭包
* 1.在函数中调用一个匿名函数时
* 2.当匿名函数当做参数传递给函数时
* 3.当匿名函数当做函数返回值的时候
*/
//匿名函数
$demo1 = function ($name){
return $name.'今年上大学了';
};
//调用匿名函数
echo $demo1('晴').'<hr>';
//匿名函数也有自己的作用域,除了传参,还可以用use外部变量
$school = '河北地质大学';
$demo2 = function ($name) use ($school){
return $name.'在'.$school.'上学';
};
echo $demo2('朔').'<hr>';
//匿名函数其实就是一个普通变量 1.局部变量 2.函数的参数 3.函数返回值
//闭包函数其实也是匿名函数
//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;
};
echo $func3()().'<hr>';
//闭包的两个生效条件:1.必须先定义一个匿名函数 2.必须要执行一次匿名函数来生成闭包函数
批改老师:韦小宝批改时间:2018-11-15 17:10:29
老师总结:嗯!不错!很完整!!不过下次记得代码要带上高亮哦!课后还得多多练习啊!!继续加油吧!!!