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),允许 临时创建一个没有指定名称的函数,但是函数的调用以及参数的传递原理是相同的。祝学习愉快!

0

0 学习 · 4928 问题

查看课程