switch文は、「もし~ならば~を行う」というような条件分岐処理を行う制御構文のひとつ。等価演算子を条件式に使ったif文とelseif文を並べるのと似ているが、switch文は、ひとつの変数もしくは式の値に対し、等価比較条件をいくつか設定し、変数や式の値に応じて処理を振り分ける際に便利だ。
使い方
基本
switch ( 変数もしくは式 ) {
case 値A:
変数もしくは式の値が、値Aと等しいときの処理
break;
case 値B:
変数もしくは式の値が、値Bと等しいときの処理
break;
case 値C:
変数もしくは式の値が、値Cと等しいときの処理
break;
}
case 値A:
変数もしくは式の値が、値Aと等しいときの処理
break;
case 値B:
変数もしくは式の値が、値Bと等しいときの処理
break;
case 値C:
変数もしくは式の値が、値Cと等しいときの処理
break;
}
複数の値に対し同じ処理
switch ( 変数もしくは式 ) {
case 値A:
case 値B:
case 値C:
変数もしくは式の値が、値A、値B、値Cのいづれかのときの処理
break;
case 値D:
case 値E:
変数もしくは式の値が、値D、値Eのいづれかのときの処理
break;
}
case 値A:
case 値B:
case 値C:
変数もしくは式の値が、値A、値B、値Cのいづれかのときの処理
break;
case 値D:
case 値E:
変数もしくは式の値が、値D、値Eのいづれかのときの処理
break;
}
デフォルトの処理を指定
default文を使う。
switch ( 変数もしくは式 ) {
case 値A:
変数もしくは式の値が、値Aと等しいときの処理
break;
case 値B:
変数もしくは式の値が、値Bと等しいときの処理
break;
default:
変数もしくは式の値が、値Aでも値Bでもないときの処理
break;
}
case 値A:
変数もしくは式の値が、値Aと等しいときの処理
break;
case 値B:
変数もしくは式の値が、値Bと等しいときの処理
break;
default:
変数もしくは式の値が、値Aでも値Bでもないときの処理
break;
}
サンプル
基本
<?php
$var = 1;
switch ( $var ) {
case 0:
echo '$varの値が「0」のときの処理';
break;
case 1:
echo '$varの値が「1」のときの処理';
break;
case 2:
echo '$varの値が「2」のときの処理';
break;
}
?>
$var = 1;
switch ( $var ) {
case 0:
echo '$varの値が「0」のときの処理';
break;
case 1:
echo '$varの値が「1」のときの処理';
break;
case 2:
echo '$varの値が「2」のときの処理';
break;
}
?>
↓↓↓出力結果↓↓↓
$varの値が「1」のときの処理
複数の値に対し同じ処理
<?php
$var = 'ギター';
switch ( $var ) {
case 'サッカー':
case '野球':
case 'テニス':
echo '<p>スポーツは楽しいよね。</p>';
break;
case 'ピアノ':
case 'ギター':
case 'バイオリン':
echo '<p>私も音楽大好きです。</p>';
break;
}
?>
$var = 'ギター';
switch ( $var ) {
case 'サッカー':
case '野球':
case 'テニス':
echo '<p>スポーツは楽しいよね。</p>';
break;
case 'ピアノ':
case 'ギター':
case 'バイオリン':
echo '<p>私も音楽大好きです。</p>';
break;
}
?>
↓↓↓出力結果↓↓↓
私も音楽大好きです。
デフォルトの処理を指定
<?php
$var = 5;
switch ( $var ) {
case 0:
echo '$varの値が「0」のときの処理';
break;
case 1:
echo '$varの値が「1」のときの処理';
break;
case 2:
echo '$varの値が「2」のときの処理';
break;
default:
echo '$varの値が、「0、1、2」の何れでもないときの処理';
break;
}
?>
$var = 5;
switch ( $var ) {
case 0:
echo '$varの値が「0」のときの処理';
break;
case 1:
echo '$varの値が「1」のときの処理';
break;
case 2:
echo '$varの値が「2」のときの処理';
break;
default:
echo '$varの値が、「0、1、2」の何れでもないときの処理';
break;
}
?>
↓↓↓出力結果↓↓↓
$varの値が、「0、1、2」の何れでもないときの処理