【PHP】if文の書き方と使い方の基本
この記事では、PHPプログラミングにおける「if文」の基本的な使い方を徹底解説します。条件が真の場合に処理を実行するif文から、elseやelseifを組み合わせた複数条件の分岐、さらに論理演算子を使った複雑な条件設定まで、豊富なサンプルコードで実践的に学べます。システム開発で不可欠な条件判定の仕組みを理解し、プログラムの制御能力を高めましょう。
開発環境
- OS: Windows10
- Editor: Visual Studio Code
- PHP: 8.0以降
PHPのif文とは
PHPのif文は、プログラムの処理の流れを制御するための「条件分岐」と呼ばれる構文の一つです。
これは、「もし〜という条件が正しいならば、この処理を実行する」というように、ある特定の条件が満たされた場合にのみ、決められた処理を実行させるための仕組みです。
ここでいう「条件式」とは、最終的に「真(true)」または「偽(false)」のどちらかの結果になる式のことです。たとえば、「AはBよりも大きいか?」といった問いが条件式になります。
if文は、複数の条件式がある場合、記述された条件式を上から順番に評価していきます。最初に「真(true)」と評価された条件式に対応する処理が実行されます。
そして、条件式が「真(true)」と評価された場合、その条件式に対応する特定の「コードブロック」(通常は{}で囲まれた部分)に書かれた処理が実行されます。一度処理が実行されると、それ以降の条件式は評価されずにif文の処理は終了します。
サンプルコード
php/chapter07/01.php
解説: PHPのif文の基本的な書き方です。if (条件式)と記述し、括弧の中の条件式がtrue(真)である場合にのみ、その直後の{}(ブロック)内の処理が実行されます。このサンプルコードでは、if (true)と直接trueを指定しているため、条件は常に真となり、「サンプルコード1: この行が実行されます。」という文字が表示されます。
01.php1<?php 2// PHPのif文の書き方 3// if (条件式1) { 4// // 条件式1がtrueのときに実行される文 5// } elseif (条件式2) { 6// // 条件式2がtrueのときに実行される文 7// } else { 8// // すべての条件がfalseのときに実行される文 9// } 10// サンプルコード1 11if (true) { 12 echo "サンプルコード1: この行が実行されます。\n"; 13} 14
php/chapter07/02.php
解説: このサンプルコードもif文の基本的な使い方を示しています。if (false)と直接falseを指定しているため、条件は常に偽となります。その結果、{}内の処理は実行されず、「サンプルコード2: この行は実行されません。」という文字は表示されません。
02.php1<?php 2// サンプルコード2 3if (false) { 4 echo "サンプルコード2: この行は実行されません。\n"; 5} 6
php/chapter07/03.php
解説: if文にelse(エルス)を追加した形です。if (条件式)がtrueの場合にはifブロックが実行され、falseの場合にはelseブロックが実行されます。このサンプルコードでは、if (true)なのでifブロックが実行され、「サンプルコード3: この行は実行されます。」と表示されます。elseブロックは実行されません。
03.php1<?php 2// サンプルコード3 3if (true) { 4 echo "サンプルコード3: この行は実行されます。\n"; 5} else { 6 echo "サンプルコード3: この行は実行されません。\n"; 7} 8
php/chapter07/04.php
解説: このサンプルコードもif-else文の例です。if (false)なのでifブロックの条件は偽となります。そのため、ifブロックの処理は実行されず、elseブロックの処理が実行されます。「サンプルコード4: この行は実行されます。」と表示されます。
04.php1<?php 2// サンプルコード4 3if (false) { 4 echo "サンプルコード4: この行は実行されません。\n"; 5} else { 6 echo "サンプルコード4: この行は実行されます。\n"; 7} 8
php/chapter07/05.php
解説: if文にelseif(エルスイフ)とelseを追加した形です。複数の条件を上から順に評価し、最初にtrueになった条件のブロックだけが実行されます。このサンプルコードでは、最初のif (true)が真であるため、そのブロックが実行され、「サンプルコード5: この行が実行されます。」と表示されます。その後のelseifやelseの条件は評価されず、処理も実行されません。
05.php1<?php 2// サンプルコード5 3if (true) { 4 echo "サンプルコード5: この行は実行されます。\n"; 5} elseif (true) { 6 echo "サンプルコード5: この行は実行されません。\n"; 7} else { 8 echo "サンプルコード5: この行は実行されません。\n"; 9} 10
php/chapter07/06.php
解説: このサンプルコードもif-elseif-else文の例です。最初のif (true)が真であるため、そのブロックが実行され、「サンプルコード6: この行は実行されます。」と表示されます。elseifやelseの条件は評価されず、処理も実行されません。
06.php1<?php 2// サンプルコード6 3if (true) { 4 echo "サンプルコード6: この行は実行されます。\n"; 5} elseif (false) { 6 echo "サンプルコード6: この行は実行されません。\n"; 7} else { 8 echo "サンプルコード6: この行は実行されません。\n"; 9} 10
php/chapter07/07.php
解説: このサンプルコードもif-elseif-else文の例です。最初のif (false)は偽であるため、そのブロックは実行されません。次にelseif (true)の条件が評価され、これが真であるため、このelseifブロックが実行されます。「サンプルコード7: この行は実行されます。」と表示されます。elseブロックは実行されません。
07.php1<?php 2// サンプルコード7 3if (false) { 4 echo "サンプルコード7: この行は実行されません。\n"; 5} elseif (true) { 6 echo "サンプルコード7: この行は実行されます。\n"; 7} else { 8 echo "サンプルコード7: この行は実行されません。\n"; 9} 10
php/chapter07/08.php
解説: このサンプルコードもif-elseif-else文の例です。最初のif (false)は偽、次のelseif (false)も偽であるため、どちらのブロックも実行されません。すべての条件が偽であった場合、最後のelseブロックが実行されます。「サンプルコード8: この行は実行されます。」と表示されます。
08.php1<?php 2// サンプルコード8 3if (false) { 4 echo "サンプルコード8: この行は実行されません。\n"; 5} elseif (false) { 6 echo "サンプルコード8: この行は実行されません。\n"; 7} else { 8 echo "サンプルコード8: この行は実行されます。\n"; 9} 10
php/chapter07/09.php
解説: このコードは、変数の値を使って年齢を判定するif-else文の練習問題です。$check_age(15)が$minor_age(18)以上かどうかを条件式$check_age >= $minor_ageで判定しています。15 >= 18は偽(false)となるため、elseブロックが実行され、「18歳未満です。」と表示されます。
09.php1<?php 2// 年齢が18歳未満かを判定するif文の練習問題 3$check_age = 15; 4$minor_age = 18; 5 6if ($check_age >= $minor_age) { 7 echo "18歳以上です。\n"; 8} else { 9 echo "18歳未満です。\n"; 10} 11
php/chapter07/10.php
解説: このコードは、点数に応じてランクを判定するif-elseif-else文の練習問題です。上から順に条件を評価していきます。
$score >= 80(73 >= 80) は偽です。elseif ($score >= 70)(73 >= 70) は真です。 この条件が真であるため、このelseifブロックが実行され、「Bランクです。」と表示されます。以降のelseifやelseは評価されません。
10.php1<?php 2// 点数が80点以上ならA、70点以上ならB、60点以上ならC、それ以外ならDでランク分けするif文の練習問題 3$score = 73; 4 5if ($score >= 80) { 6 echo "Aランクです。\n"; 7} elseif ($score >= 70) { 8 echo "Bランクです。\n"; 9} elseif ($score >= 60) { 10 echo "Cランクです。\n"; 11} else { 12 echo "Dランクです。\n"; 13} 14
php/chapter07/11.php
解説: このコードは、複数の条件を組み合わせて合否を判定するif-else文の練習問題です。
まず、配列$scoresから合計点数$total_scoreと最低点数$min_scoreを計算します。
$total_scoreは70+80+60+70+90 = 370、$min_scoreは60となります。
条件式$total_score >= 400 && $min_score >= 60は、二つの条件を&&(論理積、AND)でつないでいます。これは「両方の条件が真の場合に全体が真となる」という意味です。
$total_score >= 400(370 >= 400) は偽です。$min_score >= 60(60 >= 60) は真です。
両方の条件が真ではないため、全体の条件式は偽となります。その結果、elseブロックが実行され、「合計点数: 370 一番低い点数: 60 不合格です。」と表示されます。
11.php1<?php 2// 5教科の合計点数が400点以上、一番低い点数が60点以上なら合格、それ以外は不合格を判定するif文の練習問題 3$scores = [70, 80, 60, 70, 90]; 4$total_score = array_sum($scores); 5$min_score = min($scores); 6 7if ($total_score >= 400 && $min_score >= 60) { 8 echo "合計点数: $total_score 一番低い点数: $min_score 合格です。\n"; 9} else { 10 echo "合計点数: $total_score 一番低い点数: $min_score 不合格です。\n"; 11} 12
おわりに
本記事では、PHPのif文の基本的な書き方から、elseやelseifを用いた複数条件の分岐、さらに論理演算子を使った複雑な条件設定までを学習しました。条件式が真と評価された場合にのみ処理が実行され、条件が上から順に評価される仕組みを多くのサンプルコードで確認できました。年齢判定や点数ランク付け、複数の条件を組み合わせた合否判定といった練習問題を通して、条件分岐の実践的な記述方法を理解できたことでしょう。if文は、プログラムの処理の流れを制御する上で非常に重要な基礎となるため、しっかりと身につけていきましょう。