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 」はプログラミングをする上で、必ず利用する構文ですので必ず覚えておきましょう。
- XSERVERにSSHを利用してLaravel環境を構築する
![XSERVERにSSHを利用してLaravel環境を構築する XSERVERにSSHを利用してLaravel環境を構築する]()
- ベクトル検索とは?仕組みからRAG・生成AIでの活用方法まで初心者向けに解説
![ベクトル検索とは?仕組みからRAG・生成AIでの活用方法まで初心者向けに解説 ベクトル検索とは?仕組みからRAG・生成AIでの活用方法まで初心者向けに解説]()
- AI時代のスキルシートの書き方|エンジニアが評価される経験・スキルの伝え方
![AI時代のスキルシートの書き方|エンジニアが評価される経験・スキルの伝え方 AI時代のスキルシートの書き方|エンジニアが評価される経験・スキルの伝え方]()
- Open AIを利用した占いサイトの構築|AIで恋愛占いを身近なWebサービスへ
![Open AIを利用した占いサイトの構築|AIで恋愛占いを身近なWebサービスへ Open AIを利用した占いサイトの構築|AIで恋愛占いを身近なWebサービスへ]()
- フリーランスエンジニア・業務委託でフルリモート案件が激減している理由
![フリーランスエンジニア・業務委託でフルリモート案件が激減している理由 フリーランスエンジニア・業務委託でフルリモート案件が激減している理由]()
- AI駆動開発 生成AIの無料枠と有料版で出るクオリティーの違いはあるのか?
![AI駆動開発 生成AIの無料枠と有料版で出るクオリティーの違いはあるのか? AI駆動開発 生成AIの無料枠と有料版で出るクオリティーの違いはあるのか?]()
- Salesforceのプログラミング言語「Apex」を学べば案件獲得できるのか?フリーランスエンジニアが学ぶべき理由と現実
![Salesforceのプログラミング言語「Apex」を学べば案件獲得できるのか?フリーランスエンジニアが学ぶべき理由と現実 Salesforceのプログラミング言語「Apex」を学べば案件獲得できるのか?フリーランスエンジニアが学ぶべき理由と現実]()
- PHP・Laravel案件が減ってJava・Python・ノーコードが主流に?フリーランスエンジニアが今インプットすべきこと
![PHP・Laravel案件が減ってJava・Python・ノーコードが主流に?フリーランスエンジニアが今インプットすべきこと PHP・Laravel案件が減ってJava・Python・ノーコードが主流に?フリーランスエンジニアが今インプットすべきこと]()
- Shopify APIを利用して在庫管理を行うShopify APIで在庫を自動更新する仕組みを調査・実装してみた
![Shopify APIを利用して在庫管理を行うShopify APIで在庫を自動更新する仕組みを調査・実装してみた Shopify APIを利用して在庫管理を行うShopify APIで在庫を自動更新する仕組みを調査・実装してみた]()
S.E->Weekly Ranking;
S.E->プロフィール;














![Apple AirPods Pro[MWP22J/A]の偽物(コピー品)を正規品と徹底比較 Apple AirPods Pro[MWP22J/A]の偽物(コピー品)を正規品と徹底比較](https://www.programming-se.com/wp-content/uploads/2020/07/スクリーンショット-2020-07-13-0.00.32-300x176.jpg)






