登陆

为什么我的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'];
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;
}

1.png

明明还没有向form传参,怎么把第一个case输出了呢?这个时候$init变量是空的呀,怎么会判断成功呢??这是怎么回事呢??

# PHP
MArtianMArtian729 天前557 次浏览

全部回复(2)我要回复

  • 卢小强

    卢小强2019-11-17 09:12:23

    如果什么也不输入就提交的话,那么提交的值就是空,空不符合任何switch条件,所以它会从第一个CASE开始执行,直到遇到break才会停止

    回复
    0
  • MArtian

    不符合条件switch也会运行吗?原来是这样,谢谢

    MArtian · 2019-11-17 12:41:30
  • 取消回复发送