2

重複の可能性:
PHPでスイッチケース「または」を使用するには?

スイッチを使用してテストを行いたいのですが、これは私が書いたコードです:

<?php

    $moisActuelle = date("n");
    switch($moisActuelle)
    {
        case 1 || 2 || 3 : 
             echo'L\'hiver';
             break;
        case 4 || 5 || 6 : 
             echo'Le printemp';
             break;
        case 7 || 8 || 9 : 
             echo'L\'été';
             break;
        case 10 || 11 || 2 : 
             echo'L\'automne';
             break;

    }

?>

ただし、このコードは、$moisActuelle が何であれ、常に最初のケースを実行します。

4

3 に答える 3

4
switch($moisActuelle)
{
    case 1: 
    case 2: 
    case 3: 
         echo'L\'hiver';
         break;
}

Switch ステートメントは最初の真のケースを探し、その後、ステートメントが見つかるまですべてのアクションを実行し続けますbreakdefault

于 2012-11-08T19:24:29.080 に答える
2

そのようにできるかどうかはわかりませんが、1つの方法を次に示します。

<?php

    $moisActuelle = date("n");
    switch($moisActuelle)
    {
        case 1:
        case 2:
        case 3: 
             echo'L\'hiver';
             break;
        // etc
    }

?>
于 2012-11-08T19:24:51.937 に答える
0

私はそのような方法を使用することを好みました:

<?php
    $decisionTable = array(
        '1' => 'L\'hiver',
        '2' => 'L\'hiver',
        '3' => 'L\'hiver',

        '4' => 'Le printemp',
        '5' => 'Le printemp',
        '6' => 'Le printemp',

        '7' => 'L\'été',
        '8' => 'L\'été',
        '9' => 'L\'été',

        '10' => 'L\'automne',
        '11' => 'L\'automne',
        '12' => 'L\'automne',
    );

    $moisActuelle = date("n");
    echo $decisionTable[$moisActuelle];
?>

または、使用したい場合swicth

<?php

    $moisActuelle = date("n");
    switch(true)
    {
        case in_array($moisActuelle, array(1, 2, 3)): 
             echo'L\'hiver';
             break;
        case in_array($moisActuelle, array(4, 5, 6)): 
             echo'Le printemp';
             break;
        case in_array($moisActuelle, array(7, 8, 9)): 
             echo'L\'été';
             break;
        case in_array($moisActuelle, array(10, 11, 12)): 
             echo'L\'automne';
             break;
    }

?>
于 2012-11-08T19:32:26.937 に答える