3

このような switch ステートメントを記述できますか?

   switch ($mood) {

    case hungry : 
    case sad : 
    echo 'Eat a chocolate';


    case sad : 
    echo 'Call Up your friend';

    }

これは良い習慣ですか?

EDIT : コメントに基づいて、break ステートメントを削除しました。

4

1 に答える 1

4

同じ値で複数のケースを定義することは技術的に可能ですが、最初のケースのみが実行されます。なのでかなり駄目です。

switch()ドキュメントから:

PHP は、switch ブロックが終了するまで、または最初に break ステートメントを検出するまでステートメントを実行し続けます。

最初のケースには がbreak含まれているため、それ以上のケースは実行されず、コードはswitch()ブロックを終了します。

次のコードを検討してください。

$var = 'sad';

switch ($var) {
    case 'sad':
        echo 'First';
        break;
    case 'sad':
        echo 'Second';
        break;
}

これは出力されますFirst

条件が の場合に複数のステートメントを実行する場合はTRUE、次のように同じケースの下にそれらを追加します。

switch ($var) {
    case 'sad':
        echo 'First';
        echo 'Second';
        break;
}
于 2013-11-13T13:49:52.290 に答える