采坑记录switch坑

$speed=0;
switch($speed){
  case ($speed>=100):
    echo 150;
    break;
  case ($speed>=0):
    echo 50;
    break;
}

  

speed 初始化为0后,你猜最终打印的结果是谁,最终打印的是150
因为switch条件的case判断时只会有两种结果,true   false
初始化speed为0
走到第一个case里面,speed  不大于等于100  返回false,   坑来了,,因为初始值为0, 0==false,所以他会直接打印150   而不是正常判断中打印50

注解: case: speed >=100  这里返回的是false   0与false是相等的,所以这里才会打印150

解决:根据需求考虑将初始化值设置为》0的
或者:将switch中设为true也可
 $speed=0;
            switch(true) {
                      case $speed>=50000:
                        echo 150;
                        break;
                    case $speed >=3000:
                        echo 100;
                        break;
                    case $speed >=0:
                        echo 800;
                        break;
                    }
上一篇:震惊,特斯拉后台代码竟然是用java写的!!!


下一篇:P1266 速度限制