このような switch ステートメントを記述できますか?
switch ($mood) {
case hungry :
case sad :
echo 'Eat a chocolate';
case sad :
echo 'Call Up your friend';
}
これは良い習慣ですか?
EDIT : コメントに基づいて、break ステートメントを削除しました。
このような switch ステートメントを記述できますか?
switch ($mood) {
case hungry :
case sad :
echo 'Eat a chocolate';
case sad :
echo 'Call Up your friend';
}
これは良い習慣ですか?
EDIT : コメントに基づいて、break ステートメントを削除しました。
同じ値で複数のケースを定義することは技術的に可能ですが、最初のケースのみが実行されます。なのでかなり駄目です。
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;
}