0

私はswitch casephpコードを学ぼうとしています。これは、ブレークを使用したときに正常に動作するプログラムです。

for ($i=1;$i<=100;$i++) {
switch(true) {
        case ( $i%5 == 0  && $i%3 == 0 ):
            print 'foobar';
            break;
        case ( $i%3 == 0  ):
            print 'foo';
            break;
        case ( $i%5 == 0 ):
            print 'bar';
            break;
        case ( $i%5 != 0  && $i%3 != 0 ):
            print $i;
            break;
    } 
    echo '<br>';
}

しかし、次のコードを使用すると、予期しない結果が得られます。

for ($i=1;$i<100;$i++) {
switch(true) {
    case ( $i%3 == 0  ):
        print 'foo';
    case ( $i%5 == 0 ):
        print 'bar';
    default:
        print $i;
}
echo '<br>';
}

2番目の例で何が間違っていますか?? default上記のケースが実行されても実行されますか?? また、なぜ$i%5case が$i3 に等しいときに実行されているのですか??

4

2 に答える 2