为什么switch判断自动输出了第一个case?

新手上路,请多包涵
<form action="" method="get">
    <label for="score">请输入成绩:</label><input type="number" id="score" name="score" max="100" value="">
    <button>提交</button>
</form>
$init = $_GET['score'];
echo $init;
switch($init){
    case $init >=90 :
    echo '<p>厉害了,我的学霸!</p>';
    break;
    case $init >=80 :
    echo '<p>再接再厉,努力吧!</p>';
    break;
    case $init >=70 :
    echo '<p>差太多啦!得加油赶上了!!</p>';
    break;
    case $init >=60 :
    echo '<p>建议你留级吧!!</p>';
    break;
    default:
        break;
}

我想在form表单传参的时候通过switch判断返回输出,但是现在浏览器在还没有传参的情况下,$init的空的,为什么第一个case被输出了呢?我用ifelse写的时候就没有这个问题,而且第一个case的判断条件不生效,不管怎么改条件,都会自动输出第一个case,我实在是想不明白,求指导。

阅读 1.5k
1 个回答
switch(isset($_GET['score'])){
    case $init >=90 :
    echo '<p>厉害了,我的学霸!</p>';
    break;
    case $init >=80 :
    echo '<p>再接再厉,努力吧!</p>';
    break;
    case $init >=70 :
    echo '<p>差太多啦!得加油赶上了!!</p>';
    break;
    case $init >=60 :
    echo '<p>建议你留级吧!!</p>';
    break;
    default:
        break;
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题