摘要://匿名函数赋值给变量 $demo1 = function ($name) { return $name . '想追求如花'; }; //调用匿名函数 echo $demo1('哥哥'), '<hr>'; //匿名函数也有自
//匿名函数赋值给变量
$demo1 = function ($name) {
return $name . '想追求如花';
};
//调用匿名函数
echo $demo1('哥哥'), '<hr>';
//匿名函数也有自己的作用域,如果要在函数作用域中使用外部变量,除了传参,还可以这样:即引用外部变量用关键字use
$belle = '周芷若';
//$demo2 = function ($name) {
$demo2 = function ($name_para) use ($belle) {
// return $name . '最爱的人是赵敏';
return $name_para . '最爱的人是: ' . $belle;//此次$belle不是参数,就是变量被调用
};
//调用匿名函数
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 $callback) {
//执行匿名回调并返回
return $callback();
};
//用匿名函数做为参数调用
echo $func2($test), '<hr>';
//3.闭包函数当用函数返回值使用
$func33 = function () {
$name = '变量喵';
$test = function () use ($name) {
return $name . ',我会被当返回值使用,但是先赋值给了另一个变量,要多加一对括号,因为我毕竟是个函数';
};
return $test;
};
echo $func33()(), '<hr>';
//你可能见到最多的是这种简写形式
$func3 = function () {
$name = 'Peter';
return function () use ($name) {
return $name . ',你是变量,我是被当返回值使用的匿名函数,务必记着再加一对括号,事了拂衣去,深藏身与名';
};
};
// $func3() 的返回值是一个函数,所以再加一对圆括号,才可以执行
echo $func3()();//经过这节课,这几个听上去高大上的名词对我来说再也不神秘了,谢谢老师
批改老师:韦小宝批改时间:2018-11-28 16:58:17
老师总结:不错!最后一句话说明你是真的理解了!但是课后还是要多练习!