

下記のコードを書きました。  
しかし、$ageがnullの場合defaultを通らずに  
case $age >= 20 && $age < 30:を通ってしまいます。  
何か理由などわかる方いましたら、ご教授ください

[code]

    $age = $this->employee_age;
    switch ($age) {
        case $age >= 20 && $age < 30:
            $generation = 1;
            break;
        case $age >= 30 && $age < 40:
            $generation = 2;
            break;
        case $age >= 40 && $age < 50:
            $generation = 3;
            break;
        case $age >= 50 && $age < 60:
            $generation = 4;
            break;
        case $age >= 60 && $age < 70:
            $generation = 5;
            break;
        case $age >= 70:
            $generation = 6;
            break;
        default:
            $generation = null;
            break;
    }
    
[/code]


CC BY-SA 4.0
2023-08-09T08:20:24.543
95899
2023-08-09T10:35:11.213
59369
question
php laravel
PHP　case文


別解。

[code]

    $age = $this->employee_age;
    switch (true) {
        case $age < 20:
            $generation = null;
            break;
        case $age >= 70:
            $generation = 6;
            break;
        default:
            $generation = intdiv($age, 10) - 1;
    }
    
[/code]


CC BY-SA 4.0
2023-08-09T10:35:11.213
95903
2023-08-09T10:35:11.213
47127
95899
answer