令人驚恐的php switch

令人驚恐的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;
php switch bug
php switch bug

經過高人指示

$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 的比較 就可以囉

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *