if
(PHP 4, PHP 5)
if 構造は、コードフラグメントを条件付きで実行できるようにする、PHP を含む多くの言語の最も重要な機能の 1 つです。 PHP の if 構造は C 言語に似ています:
<?php if (expr) statement ?>
「式」の章で定義されているように、expr はブール値として評価されます。 expr の値が TRUE の場合、PHP はステートメントを実行します。値が FALSE の場合、ステートメントは無視されます。どの値が FALSE とみなされるかについて詳しくは、「ブール値への変換」セクションを参照してください。
$a が $b より大きい場合、次の例は a が b より大きいことを示します:
<?php if ($a > $b) echo "a is bigger than b"; ?>
条件に従って複数のステートメントを実行する必要があることがよくあります。 もちろん、ステートメントを追加する必要はありません。 if 句を各ステートメントに追加します。これらのステートメントはステートメント グループに配置できます。たとえば、$a が $b より大きい場合、次のコードは a が b より大きいことを表示し、$a の値を $b に割り当てます。
<?php if ($a > $b) { echo "a is bigger than b"; $b = $a; } ?>
if ステートメントは、他の if ステートメント内に無限に深くネストできます。プログラムのさまざまな部分を条件付きで実行すると、完全な柔軟性が得られます。
else
(PHP 4, PHP 5)
特定の条件が満たされた場合にステートメントを実行し、条件が満たされない場合に他のステートメントを実行することが必要になることがよくあります。これはまさに else の機能です。 else は if ステートメントを拡張し、if ステートメント内の式が FALSE と評価されたときにステートメントを実行できます。たとえば、次のコードは、$a が $b より大きい場合、a は b より大きいと表示します。それ以外の場合、a は b より大きくありませんと表示します。
<?php if ($a > $b) { echo "a is greater than b"; } else { echo "a is NOT greater than b"; } ?>
else ステートメントには、if および elseif の式の値のみが含まれます (if any) ステートメント FALSE の場合に実行されます。
elseif/else if
(PHP 4, PHP 5)
elseif は、名前が示すように、if と else の組み合わせです。 else と同様に、if ステートメントを拡張し、元の if 式が FALSE と評価された場合に別のステートメントを実行できます。ただし、else とは異なり、elseif の条件式の値が TRUE の場合にのみステートメントが実行されます。たとえば、次のコードは、条件に従って、a が b より大きい、a が b に等しい、または a が b より小さいことを表示します。
<?php if ($a > $b) { echo "a is bigger than b"; } elseif ($a == $b) { echo "a is equal to b"; } else { echo "a is smaller than b"; } ?>
同じ if ステートメント内に複数の elseif 部分が存在する場合があります。ここで、最初の式の値はTRUE elseif 部分 (存在する場合) が実行されます。 PHP では、「else if」 (2 つの単語) を記述することもできます。これは、「elseif」 (1 つの単語) とまったく同じように動作します。構文解析の意味 (C に精通している場合は同じ動作) には若干の違いがありますが、要するに、どちらもまったく同じ動作を生成します。
elseif ステートメントは、前の if および前のすべての elseif 式が FALSE と評価され、現在の elseif 式が TRUE と評価された場合にのみ実行されます。
注: elseif と elseif は、上記の例で中括弧が使用されている場合にのみ、まったく同じであるとみなされることに注意してください。コロンを使用して if/elseif 条件を定義する場合、2 つの単語の else if を使用することはできません。使用しない場合、PHP は解析エラーを生成します。