PHPでは、条件分岐を構成する2つの制御構文が用意されています。if構文if構文です。if構文では、最初に式を評価し、その条件を判断して処理スクリプトを実行します。
if(条件式) {
条件が満たされたときの処理スクリプト
}
<?php
$a = 10;
if($a > 5) {
print("変数\$a は、5 よりも大きい");
}
?>

$a の値を条件式で評価して、その結果が「true」と判断され、処理スクリプトを実行した結果です。「false」と評価された場合、ブロック内の処理スクリプトは実行されません。しかしその場合、閲覧者がその結果を知ることができません。else文if構文の条件式が「false」を返したとき、別の処理スクリプトへ誘導するために else文を使います。elseを簡単に説明すると、もし〜ならば、〜であるが、そうでない場合は〜である、というところの「そうでない場合」を指定するものです。
<?php
$a = 3;
if($a > 5) {
print("変数\$a は、5 よりも大きい");
} else {
print("変数\$a は、5 よりも小さい");
?>
else文は、入れ子にしてより細かな条件設定を行うことができます。elsif文 を使って入れ子にすることができます。閲覧者の反応に答えるため、さらに細かな処理スクリプトを書くことが可能になります。
<?php
$a = 3;
if($a > 5) {
print("変数\$a は、5 よりも大きい");
} elseif($a >10) { // elseif文
print("変数\$a は、10よりも大きい");
} else {
print("変数\$a は、5 よりも小さい");
?>
switch構文switch文は、変数の値に応じて条件分岐する制御構文で、case文と共に利用します。switch文の基本的な書式は以下のとおりです。
switch(変数または式) {
case "値1":
変数の値が、値1のときに処理するスクリプト
break;
case "値2":
変数の値が、値2のときに処理するスクリプト
break;
case "値3":
変数の値が、値3のときに処理するスクリプト
break;
default:
変数の値がいずれの case の値と一致しなかった場合のスクリプト
}
switch文は同じ変数を繰り返して評価するための条件を、その引数に設定することで、効率的で便利な条件分岐が行えます。記述の際に間違えやすいのは、コロンとセミコロンです。注意しましょう。break文で、構文から抜け出すように明示しておくことが大切です。caseは任意にいくらでも設定することが可能なため、非常に細かな条件を設定することが可能です。
<?php
$age = 20;
switch($age) {
case "15":
print("勉強に励んでください");
break;
case "20":
print("若くてうらやましいです");
break;
case 30:
print("これから人生の本番です");
break;
default:
print("人生は悩み多きものです");
}
switch構文は閲覧者からの入力によってインタラクティブに反応する構文が書けます。以下は、このスクリプトの実行結果です。
swithcで指定した値が一致した case文の処理スクリプトによって、Webブラウザに結果を出力しています。ここでは、case 20: が選択されています。