if:~endif文は役割としては他のif文と同じではありますが、記述の仕方に違いがあります。「(中かっこ)」で処理範囲を指定するのではなく、「:(コロン)」を使用します。ここでは「<?php if ( $fruit == "りんご" ): ?>」で使用しています。
<?php
$fruit = "りんご";
?>
<html>
<head>
<meta http-equiv="Content-Languagee" content="ja" />
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis" />
<title>果物</title>
</head>
<body>
<?php if ( $fruit == "りんご" ): ?>
<table width="535" border="1">
<tr>
<th bordercolor="#CCCCCC" width="135">
果物
</th>
<th bordercolor="#CCCCCC" width="135">
内容
</th>
</tr>
<tr>
<td width="135" align="center">
りんご
</td>
<td width="400">
表面に付着する農薬等の問題や、食べやすさの点から、皮をむいて食べられることが多い。
</td>
</tr>
</table>
<?php endif; ?>
</body>
</html>

上記スクリプトの<? php$fruit = "りんご";?> と <?php if ( $fruit == "りんご" ): ?> と <?php endif; ?> が phpのスクリプト部分となります。
「<? php$fruit = "りんご";?>」の$fruit = "りんご";は変数$fruitにりんごを代入しています。「<?php if ( $fruit == "りんご" ): ?>」の「if ( $fruit == "りんご" )」はif文で<?php endif; ?>までの間のhtmlを変数$fruitがりんごであった場合に生成しています。ここでもし、「$fruit == "りんご"」にりんご以外の文字を代入するとテーブルで装飾されたりんごの内容文は表示されません。
switch文を使うと、同じ変数の繰り返し評価する条件式を効率的に記述することができます。
if-elseif-elseでは、複数の条件を上から順番にチェックして、最初に条件が成立したブロックの処理をさせる(条件が成立しなかった場合は elseブロック)構造ですが、switch文では、switch文の「( )括弧」内に、条件判定させる変数や式を記述し、case式で判定する値を記述していきます。
実際に、switch文を使用して条件式を記述してみます。
<?php
$fruit = "みかん";
switch( $fruit ) {
case "ぶどう":
echo "これはぶどうです";
break;
case "りんご":
echo "これはりんごです";
break;
case "なし":
echo "これはなしです";
break;
case "みかん":
echo "これはみかんです";
break;
default:
echo "これはなんでしょうか?";
}
?>
上記のスクリプトでは、case式を使用して、switch文の「( )括弧」内に記述されている「$fruit」の値に一致するものを判定しています。
そして、「$fruit」の値に一致した場合、注)breakで処理を終了します。
switch文で記述できることはif文で記述できますが、多くの値と一致するかどうかを比較する場合には、if-elseif-elseで何度も同じ変数を判定するよりは、switch文を使った方が分かりやすく記述できます。
注)各case式の最後に「break」が記述されていない場合、該当したcaseの処理よりうしろに記述されている全てのcaseの処理が実行されてしまいます。必ずcase毎に「break」を記述し、処理を終了させるようにしなければなりません。