3-3 编程练习,还是不理解,一个匿名函数怎么在另一个函数里调用,我做了一半实在想不起来怎么做
来源:3-3 编程练习
qq_只恨今生无缘往事都随风_03405231
2019-06-27 10:26:59
定义两个全局变量分别为$score和$get,并为它们赋初值为$score=70;$get=’’,定义一个匿名函数$com,要求在匿名函数中实现以下功能:
当$score的数值小于等于100且大于等于80,给$get赋值为'优秀';
当$score的数值小于80且大于等于60,给$get赋值为'合格';
当$score大于等于0小于60,给$get赋值为'不及格',其他情况赋值为'这是啥';
再定义一个普通函数Comment,匿名函数作为一个Comment函数的一个参数传入,调用函数Comment,然后打印$get,要求$get的值符合匿名函数的逻辑。例如$score为70,那么调用Comment函数之后,打印出的$get值就应该为‘合格’
1回答
好帮手慕小尤
2019-06-27
同学你好,主要原理是匿名函数和函数的调用以及参数的传递,代码如下:
<?php
//定义变量
// 以及定义匿名函数$com
$score=70;
$get='#';
$com = function($num){
global $get;
global $score;
switch($num){
case $num>=80:
echo $get='我得到的评价是:优秀';
break;
case $num>=60&&$num<80:
echo $get='我得到的评价是:合格';
break;
case $num>=0&&$num<60:
echo $get='我得到的评价是:不及格';
break;
default:
echo $get='我得到的评价是:这是啥';
break;
}
};
//调用Comment函数并传递参数
Comment($com,$score);
// 找到声明的Comment函数并执行
function Comment($com,$score){
echo '我的成绩是:'.$score;
echo '<br/>';
//去调用声明的匿名函数$com
$com($score);
}
?>注:匿名函数(Anonymous functions),也叫闭包函数(closures),允许 临时创建一个没有指定名称的函数,但是函数的调用以及参数的传递原理是相同的。祝学习愉快!
相似问题