複合的な条件の書き方
では、水曜にチケットを割引する対象が女性限定であった場合、どうすればいいでしょうか。このような場合、『もし水曜で尚且つ女性であれば』のような複合的な条件の記述もできます。複合的な条件は &&
記号と ||
記号を用います。
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にアクセスしてみましょう。表示結果が変わる事を確認できます。