令人驚恐的php switch
當$in = 0 的時候竟然跑進去+1了?!…
$in = isset($_GET['in']) ? (int)$_GET['in'] : 0; $out = 0; var_dump($in); switch ($in) { // case $in = 0: // break; case $in >=1 && $in <=4: $out++; break; case $in >=5 && $in <=8: $out--; break; default: break; } echo $out;
經過高人指示
$in = isset($_GET['in']) ? (int)$_GET['in'] : 0; $out = 0; var_dump($in); switch (true) { // case $in = 0: // break; case $in >=1 && $in <=4: $out++; break; case $in >=5 && $in <=8: $out--; break; default: break; } echo $out;
直接改成 switch (true)
變成 true == true 的比較 就可以囉