请老师看一下哪里错了

请老师看一下哪里错了

<?php

//定义变量
$score=70;
$get='';
//定义匿名函数$com
$com = function($num){
    global $score;
    global $get;
    if($score>=80){
        $get='优秀';
    }elseif($score>=60){
        $get='合格';
    }elseif($score>=0){
        $get='不及格';
    }else{
        $get='这是啥';
    }
};
//声明函数Comment
function Comment($com,$score){
    echo'我的成绩是:'.$score.'我得到的评价是:'.$get;
}
//调用Comment函数
Comment($com,$score);

//打印变量值
?>


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

您好,代码中并没有调用匿名函数,另$get变量在Comment函数中是局部变量,是不可以使用的哦~修改如下:

<?php
header("content-type:text/html;charset=utf-8");
//定义变量
$score=70;
$get='';
//定义匿名函数$com
$com = function($num){
    global $score;
    global $get;
    if($score>=80){
        $get='优秀';
    }elseif($score>=60){
        $get='合格';
    }elseif($score>=0){
        $get='不及格';
    }else{
        $get='这是啥';
    }
};
//声明函数Comment
function Comment($com,$score){
  //使用匿名函数
  $com($score);
}
//调用Comment函数
Comment($com,$score);
//打印变量值
echo'我的成绩是:'.$score.'我得到的评价是:'.$get;
?>

如果解决了您的问题,请采纳。祝学习愉快!

  • 雨之赞歌 提问者 #1
    function Comment($com,$score){ $com($score); } 还是不理解为什么这么写,为什么这里赋了2次$score值呢
    2019-01-15 14:04:38
  • 好帮手慕查理 回复 提问者 雨之赞歌 #2
    您好,如果将Comment函数去除,直接使用$com($score);也是可以输出结果。这里只是题目要求需要在Comment函数中使用匿名函数。Comment函数是一个普通函数,要在内部使用$com和$score或者其它变量,就需要作为参数传入,因此要将$com,$score作为参数传入函数中使用,最终为function Comment($com,$score){ $com($score); }。祝学习愉快!
    2019-01-15 14:12:47
  • 雨之赞歌 提问者 回复 好帮手慕查理 #3
    明白了,谢谢老师!
    2019-01-15 14:20:38
提问者 雨之赞歌 2019-01-15 13:37:54
<?php

$com = function($num){
    global $get;
    if ($num>=80){
        $get='优秀';
    }elseif ($num>=60){
        $get='合格';
    }elseif ($num>=0){
        $get='不及格';
    }else{
        $get='这是啥';
    }
};
$score=70;
$get='';
function Comment($com,$score){
$com($score);
}
echo $score,$get;


  • 提问者 雨之赞歌 #1
    有几个疑问请老师解惑: 在定义comment的时候,回调了$com,当作第一个参数,然后第二个参数$score不是赋给$com的值吗,为什么在comment里面还需要再次传值呢? 还有为什么最后输出的结果get的值没有
    2019-01-15 13:40:01
  • 好帮手慕查理 回复 提问者 雨之赞歌 #2
    您好,Comment函数第二个参数并不是第一参数的值,只是作为参数传入函数。没有调用Comment函数,那么便无法执行$com($score);语句执行匿名函数,因此无法输出$get的值。祝学习愉快!
    2019-01-15 13:58:28
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
PHP小白零基础入门
  • 参与学习           人
  • 提交作业       626    份
  • 解答问题       4930    个

想要学好Web后端开发的中流砥柱语言,本阶段为你轻松铺就扎实的基础,从前端网页布局的搭建到后台PHP开发,助你从零基础到掌握主流开发语言。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师