PHP 条件分岐 if elseif else switch 〜未経験の為のPHPプログラミング入門講座〜

PHPプログラミングはエンドユーザーから与えられた条件をもとに処理を分岐します。
今回は、PHPの条件分岐で利用する if elseif else switch の解説をします。
if 命令文
ifは与えられた条件がtrueかfalseかにより処理を分岐します。
日本語で処理を記述すると
もし■■だったら、〇〇、■■出ない場合は▲▲
PHPで記述すると
1 2 3 4 5 6 7 8 9 10 | <?php $test = '■■■'; if( $test == '■■■' ){ echo '○○○'; } else{ echo '▲▲▲'; } ?> |
$test が ■■■ であるかどうかにより結果が変わります。
if 〜 elseif 命令文
if命令文の結果は2種類のどちらかでしたがelseifを利用することにより複数の分岐を行うことができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php $test = '■■■'; if( $test == '■■■' ){ echo '○○○'; } elseif( $test == '■■' ){ echo '○○'; } else{ echo '▲▲▲'; } ?> |
elseif は何度でも利用可能です。
最終 else でどの条件にも当てはまらない場合の結果が表示されます。
elseif の注意点
下記のスクリプトのelseifは実行されることはありません。
1 2 3 4 5 6 7 8 9 10 11 | <?php $num = 30; if( $num >= 10 ){ echo '$numは10以上です。'; } elseif( $num >= 20 ){ echo '$numは20以上です。'; } ?> |
正しいスクリプトは下記のようになります。
1 2 3 4 5 6 7 8 9 10 11 | <?php $num = 30; if( $num >= 20 ){ echo '$numは20以上です。'; } elseif( $num >= 10 ){ echo '$numは10以上です。'; } ?> |
switch 命令文
PHPの条件分岐にはif以外にも「switch」があります。
switchの記述方法は以下のようになり、switch以外に「case」「default」「break」を利用します。
1 2 3 4 5 6 7 8 9 10 11 | switch (式){ case 値1: 式が値1と等しい時の処理; break; case 値2: 式が値2と等しい時の処理1; 式が値2と等しい時の処理2; // 複数の処理を記述できる break; default: 式がいずれの値にも等しくない時の処理; } |
if文で書かれた以下の内容をswitch文で記述することができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?php $name = '鈴木'; if( $name == '山田' ){ echo '名前は山田です。'; } elseif( $name == '佐藤' ) echo '名前は佐藤です。'; } elseif( $name == '鈴木' ) echo '名前は鈴木です。'; } else{ echo '未入力です。'; } // 結果 名前は鈴木です。 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <?php $name = '鈴木'; switch ( $name ){ case '山田': echo '名前は山田です。'; break; case '佐藤': echo '名前は佐藤です。'; break; case '鈴木': echo '名前は鈴木です。'; break; default: echo '未入力です。'; } // 結果 名前は鈴木です。 |
複数の条件に当てはまる場合
switch文とif文の大きな違いは、複数の条件に当てはまった場合のふるまいです。
以下例をあげてみます。
if文では「$name == ‘鈴木’ 」の条件に当てはまる内容の記述が2回あっても最初にヒットした条件で処理が行われると、後の処理は無視されます。
そのため「名前は鈴木です。その2」の結果は永久に出力されることはありません。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <?php $name = '鈴木'; if( $name == '山田' ){ echo '名前は山田です。'; } elseif( $name == '佐藤' ) echo '名前は佐藤です。'; } elseif( $name == '鈴木' ) echo '名前は鈴木です。'; } elseif( $name == '鈴木' ) echo '名前は鈴木です。その2'; } else{ echo '未入力です。'; } // 結果 名前は鈴木です。 |
これをswitch文で記述してみます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?php $name = '鈴木'; switch ( $name ){ case '山田': echo '名前は山田です。'; case '佐藤': echo '名前は佐藤です。'; case '鈴木': echo '名前は鈴木です。'; case '鈴木': echo '名前は鈴木です。その2'; default: echo '未入力です。'; } // 結果 名前は鈴木です。名前は鈴木です。その2 |
switch文では「break」を記述しないことで全てのcaseの条件を参照し、条件が合えば全ての処理を行います。
上記のswitch文の「break」を記述すると前述のif文と同様の結果となります。
if elseif else switch のまとめ
条件分岐「 if elseif else switch 」はプログラミングをする上で、必ず利用する構文ですので必ず覚えておきましょう。
S.E->お勧め記事;
- CrowdWorks 提案後、受注に繋がりました。提案〜契約までの流れを解説
- プログラマー になる為に必要な プログラミング以外 の知識・スキル
- macOS Monterey にアップデート後、composerやhomebrewでenv: php: No such file or directoryが出る
- Shopify APIを利用して在庫管理を行う
- XSERVERにSSHを利用してLaravel環境を構築する
- PHPフレームワーク「Laravel」ディレクティブ-繰り返し処理(ループ処理)-
- PHP フレームワーク Laravel ディレクティブ – ループ変数 $loop –
- CrowdWorks いつの間にか「プロクラウドワーカー」になっていた
- Panic Nova 購入から1年が過ぎライセンスの更新時期の注意点
S.E->PR;
チームのタスク管理ツール【backlog】
FREENANCE(フリーナンス)
S.E->Weekly Ranking;
S.E->プロフィール;

