PHPのswitch文の使い方と、よくある間違い

PHPにはswitch文というのがあります。
switchってことで、家電のスイッチみたいに切り替えできるんですが、「入」と「切」とかよりももっと多くの選択肢を表現することができるんです。
電子レンジの「解凍」「トースト」「ピザ」「ケーキ」とかみたいな、電子ジャーのような「白米」「玄米」「発芽玄米」とかみたいな。。ってもういいか。。

そんなわけで、switch文の例文です。

<?php

$price = 100;

switch ($price) {
    case 1:
        echo 'はずれ';
        break;
    case 10:
        echo 'はずれ';
        break;
    case 100:
        echo 'あたり';
        break;
    default:
        echo 'はずれ';
        break;
}

これを実行すると、「あたり」が表示されるはずです。コマンドプロンプトでもブラウザでも同じですね。
switchのあとの()にターゲットになる値、比較の対象になる値を入れます。
そして、caseのあとに続くのに一致すればそのブロックに入ります。
たとえば、case 1だとして、$priceがもし1だったら、case 1のブロックの値の処理が走るということです。
例文では、$priceは100だから、case 100のブロックに入りますね。
そして、どれにも該当しない場合は、defaultブロックに入ります。

ここまでが基本的な使いかたなんですが、よくある間違いを紹介します。

<?php

$price = 100;

switch ($price) {
    case 1:
        echo 'はずれ';
        break;
    case 10:
        echo 'はずれ';
        break;
    case 100:
        echo 'あたり';
    default:
        echo 'はずれ';
        break;
}

こうしてしまうと、「あたりはずれ」が表示されます。
case 100のブロックも処理されて、breakがないせいでdefaultブロックまで処理されてしまってるんですね。
このbreak忘れは意外とやり易いミスなので気を付けましょう。