摘要:<?php//匿名函数$demo01 = function($name01){ return $name01.'爱赵敏<br />';};//调用echo $demo01('张无忌');//匿名函数也有作用域(一般可以传参,也可以使用 use关键字)$name02 = '周芷若';$demo02 = fun
<?php
//匿名函数
$demo01 = function($name01){
return $name01.'爱赵敏<br />';
};
//调用
echo $demo01('张无忌');
//匿名函数也有作用域(一般可以传参,也可以使用 use关键字)
$name02 = '周芷若';
$demo02 = function($name01) use ($name02){
return $name01.'爱赵敏<br />'.$name02.'爱'.$name01;
};
//调用
echo $demo02('张无忌');
//匿名函数和闭包的三种情况(1.当作局部变量 2.将匿名函数当作参数 3.将函数当作返回值)
//1.当作局部变量
function bibao01(){
$name = '无忌哥哥';
// $test = function ($name){
// return $name.'我是被当作局部变量了';
// };
$test = function () use ($name){
return $name.'我是被当作局部变量了';
};
return $test($name);
}
echo bibao01().'<hr >';
//2.当作参数传递 -----use关键字引入变量
$name02 = '无忌哥哥02';
$test02 = function () use ($name02){
return $name02 . '我是被当作局部变量了02';
};
$bibao02 = function (callable $test02){
return $test02();
};
echo $bibao02($test02).'<hr >';
//3)当作返回值
function bibao03(){
$name = '无忌哥哥03';
$test = function () use ($name){
return $name.'我是被当作局部变量了03';
};
return $test;
}
echo bibao03()().'<hr >';//总结,闭包三种情况
当作局部变量(即在函数内部申明匿名函数,返回时带())
当作匿名函数的传参。(匿名调用时需要 callable+匿名函数名,返回也是返回参数带()即可。)
把匿名函数当作的返回值。(和第一种有点像,但是不带(),返回的是整个函数。所以调用时。需要两个()(),前个函数返回,后个执行)
批改老师:韦小宝批改时间:2018-11-24 11:12:27
老师总结:嗯!不错!写的还算完整!下次作业中有代码记得给代码加上高亮哦!课后还要多多练习!继续加油吧!!