PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPのif文・elseif文とは?条件分岐の基本と使い方を徹底解説

はじめに

条件に応じて1つ以上の文を実行する「条件分岐」は、あらゆるプログラミング言語において最も重要な機能の一つです。PHPでは、if、else、elseifといったステートメントを使うことで、柔軟な条件分岐を実現できます。

まずはif文の基本的な使い方から見ていきましょう。

if文の基本構文

if (expression)
    statement;

ifキーワードの後に記述する式は論理式で、評価結果はTRUE(真)またはFALSE(偽)のいずれかになります。式がTRUEと評価されれば次の行の文が実行され、FALSEであればその文は無視されます。

条件がTRUEの場合に複数の文を実行したいときは、波括弧({ })で文をグループ化します。

if (expression){
    statement1;
    statement2;
    ..
}

else文との組み合わせ

式がFALSEだった場合に別の文(または文のグループ)を実行したいときは、elseキーワードを使用し、その下に1つ以上の文を別の波括弧の中へ記述します。

if (expression){
    statement1;
    statement2;
    ..
} else {
    statement3;
    statement4;
    ..
}

if〜else文のサンプルコード

次の例は、ifとelseキーワードの典型的な使い方を示したものです。readline()関数を使ってコマンドラインからキーボード入力を受け取り、入力された点数が50以上なら「合格」、そうでなければ「不合格」として結果を表示します。

<?php
$marks=(int)readline("enter marks: ");
if ($marks>=50){
    echo "The result is pass" . "\n";
    echo "congratulations" . "\n";
}
else{
    echo "The result is Fail". "\n";
    echo "Better luck next time" . "\n";
}
?>

実行結果

このコードを実行すると、次のような結果が出力されます。

The result is Fail
Better luck next time

elseif文とは

ある条件がFALSEだった場合に、別の条件が満たされているかどうかを確認したいケースは非常によくあります。このような場合、最初のif文のelse節の中にさらにif文を入れ子にして記述することになりますが、これを繰り返すとif〜elseブロックが何重にも連なり、プログラムが冗長で読みにくくなってしまいます。

PHPでは、この問題を解決するためにelseifステートメントが用意されています。

名前のとおり、elseifはifとelseを組み合わせたキーワードです。elseとほぼ同じように動作しますが、独自の条件式を持てる点が異なります。プログラムの流れは上から順にelseifの条件を評価していき、最初にTRUEとなったelseifのブロックだけが実行されて処理を抜けます。最後にあるelseブロックは、それまでのifおよびelseifのすべての条件がFALSEだった場合にのみ実行されます。

elseif文の構文

if (expression){
    statement;
}
elseif (expression){
    statement;
}
elseif (expression){
    statement;
}
.
.
else{
    statement;
}

elseif文のサンプルコード

次の例では、elseif文を使って入力された点数に基づき、学生の成績(グレード)を段階的に判定しています。

<?php
$marks=(int)readline("enter marks: ");
if ($marks<35)
    echo "fail";
elseif ($marks<50)
    echo "pass class";
elseif ($marks<60)
    echo "second class";
elseif ($marks<75)
    echo "first class";
else
    echo "distinction";
?>

このコードでは、点数に応じて以下のように成績が判定されます。

  • 35未満:fail(不合格)
  • 50未満:pass class(合格)
  • 60未満:second class(二等)
  • 75未満:first class(一等)
  • 75以上:distinction(優秀)

実行結果

たとえば入力した点数が35未満の場合、次のように出力されます。

fail

このように、PHPのif・else・elseif文を組み合わせれば、複数の条件に応じた柔軟な処理の分岐が簡単に実装できます。条件分岐はプログラミングの土台となる重要な概念なので、ぜひしっかりマスターしておきましょう。

  1. SQL ServerのIF...ELSE文とは?基本構文と実践例をわかりやすく解説

    他のプログラミング言語と同様に、SQL Serverでも条件分岐を行うためのIF...ELSEコマンドが用意されています。本記事では、IF...ELSE文の構文の使い方を、わかりやすい具体例とともに詳しく解説します。 概要 SQL ServerにおけるIF...ELSE文は、条件に応じて処理を分岐させるために使用されるステートメントです。条件がTRUE(真)と評価された場合は一方的な処理を実行し、FALSE(偽)と評価された場合には別の処理を実行します。 IF...ELSE文の構文 SQL ServerでIF...ELSEによる分岐処理を行うには、以下の構文に従って記述します。 IF 条件式{

  2. Pythonでif...elseステートメントを正しくインデントする方法

    Pythonの大きな特徴のひとつは、統一されたインデント(字下げ)によって文のブロックを表現するという点です。他の多くの言語では波括弧 { } などでブロックを囲みますが、Pythonではインデントそのものが構文の一部となります。ブロックはコロン(:)記号によって開始されます。if文などの末尾にコロンを入力してEnterキーを押すと、Pythonに対応したエディタであれば、自動的にカーソルが次の行へ移動し、インデントが一段深くなります。その後に入力する行はすべて同じインデントレベルが維持されます。ブロックを終了したい場合は、Backspaceキーを押してインデントレベルを一段戻します。この手順