我的老師給了我這個任務。PHP範圍開關
做一個INT變量,表示一週(1-7)的一天。做一個switch語句具有以下情況:
- 1-5
echo "Weekday";
- 6-7
echo "Weekend";
- 其他值
echo "Unknown day";
我的問題是零。
起初我寫了這段代碼。
$day = 7;
switch ($day) {
case $day >= 1 && $day <= 5:
echo "Weekday";
break;
case $day >= 6 && $day <= 7:
echo "Weekend";
break;
default:
echo "Unknown day";
break;
}
它與每一個數字作品除了0。當$day = 0;
它選擇第一種情況,並說這是一個平日。
我也試過這個。
$day = 7;
switch ($day) {
case 1-5:
echo "Weekday";
break;
case 6-7:
echo "Weekend";
break;
default:
echo "Unknown day";
break;
}
但它更糟。我總是得到default
選項。
我知道有更好的方法來做到這一點,但我只需要使用switch語句來做到這一點。
檢查此http://php.net/manual/en/ control-structures.switch.php,但我認爲你可以添加到你的第一個代碼,你做了$ day> =,在'default:'之前添加'case 0'並且不添加中斷 – kunicmarko20
看到這個答案:http: //stackoverflow.com/questions/1800798/php-case-statement-not-working-with-zero-values – Perry