複合的な条件の書き方
では、水曜にチケットを割引する対象が女性限定であった場合、どうすればいいでしょうか。このような場合、『もし水曜で尚且つ女性であれば』のような複合的な条件の記述もできます。複合的な条件は && 記号と || 記号を用います。
if( 条件A && 条件B ) → 条件Aで尚且つBであれば if( 条件A || 条件B ) → 条件AまたはBであれば
以下は実際の使用例です。
// $day が「水曜日」でなおかつ $gender が「女性」ならば、チケット500円引き。
if( $day == "水曜日" && $gender == "女性" ){
$price = $price - 500;
}
// $hour が 21 以上または 10 以下ならば、メッセージを表示
if( $hour >= 21 || $hour <= 10 ){
print("今日は閉店しました。また明日お願いします。");
}
elseifとelse
if文だけでは対応できない場合のために、elseif、elseというキーワードも存在します。例えば、血液型占いを考えた場合、A型の場合、O型の場合、B型の場合、AB型の場合で占い結果が違います。このように条件が何パターンかある場合に、elseif、elseを使います。
elseifは『ifの条件ではないけれども○○なら』という意味です。elseは『ifでもelseifでもないならば』の意味です。次のように記述します。
if( 条件A ){
条件Aに合致した場合の処理
}elseif(条件B){
条件Aではなく、条件Bに合致した場合の処理
}elseif(条件C){
条件A、Bではなく、条件Cに合致した場合の処理
}else{
条件A、B、Cのいずれにも合致しなかった場合の処理
}
if無しにelseifやelseを書くことができません。また、elseifは必要な限り何個でも列挙することが可能です。
血液型占いの例の場合、「条件A」に『A型ならば』、「条件B」に『O型ならば』、「条件C」に『AB型ならば』のように当てはめていきます。elseは条件A~Cのいずれにも当てはまらない場合に入りますから、必然的に『AB型または血液型が不明ならば』という条件になります。
では、サンプルソースの「codezine4」フォルダごと「Cドライブ」→「xampp」→「htdocs」フォルダに移動させましょう。移動が完了したら「codezine4」フォルダの中にある、「if.php」というファイルをメモ帳などで開き、内容を確認してみましょう。
<html>
<h2>血液型占い</h2>
<body>
<?php
$blood = "O";
// $blood(血液型)に応じたメッセージを表示する。
if($blood == "A"){
$message = "A型のあなた!今日はいい事があります。";
}elseif($blood == "O"){
$message = "O型のあなた!今日の行動は慎重に。";
}elseif($blood == "B"){
$message = "B型のあなた!風邪に注意です。";
}else{
$message = "AB型または不明のあなた!ポジティブにいきましょう。"
}
print("占い結果:$message");
?>
</body>
</html>
確認したら、http://localhost/codezine4/if.phpにアクセスしてください。
結果を確認したら、「codezine4」フォルダの「if.php」の「$blood = "O"」の部分を、「$blood = "AB";」に変更し、再度http://localhost/codezine4/if.phpにアクセスしてみましょう。表示結果が変わる事を確認できます。


