Webサイト制作科 - 作品紹介

Webサイト制作科 - 作品紹介

条件分岐

もし〜なら

  • 基準で枝分かれするという発想
枝分かれの仕組みは「条件分岐」
  • 昼だったら「こんにちは」と表示
  • 夜だったら「こんばんわ」と表示
  • 18時を基準にする


条件に応じて枝分かれする処理

  • 条件:いまの時刻は18時以降である
  • 条件を満たす:「こんばんは」と表示
  • その意外の場合:「こんにちは」と表示

if文とは

  • 条件に応じて実行する処理を記述
「いまの時間は18時以降?」の条件を組み立てる
  • date関数の最初のパラメータに「G」を指定すると、0〜23までの「時」が返されます
  • この数値を「変数 $hour」に格納して、時刻が18時を過ぎているかどうかの判断に使います
  • if文の()には、この値「 $hour」が、18以上かどうかかを示す条件文($hour >= 18)を記述します
<?php
  $hour = date('G');
  
  if ($hour >= 18) {
  	echo 'こんばんは';
  } else {
  	echo 'こんにちは';
  }
?>




一致しないことを調べる条件
<?php
  $hour = date('G');
  
  if ($hour != 12) {
  	echo 'いまは昼休みではありません!';
  }
?>




  • 早朝の5時より前も「こんばんは」と表示したい場合
<?php
  $hour = date('G');
  
  if ($hour >= 18 or $hour < 5) {
  	echo 'こんばんは';
  } else {
  	echo 'こんにちは';
  }
?>

「もしも」が増えたら「switch文」

  • 条件が多い処理にif文は不向き
  • 例:曜日ごとに違うメッセージを表示する
曜日ごとのメッセージ
  • 日曜日:今日は定休日です
  • 月曜日:9時〜22時まで営業
  • 火曜日:9時〜22時まで営業
  • 水曜日:特売日! 7時〜24時まで営業
  • 木曜日:9時〜22時まで営業
  • 金曜日:9時〜22時まで営業
  • 土曜日:12時〜20時まで営業


これを「if文」で処理しようとすると「elseif」が多くなり、何に対しての「それ以外は」なのかわかりにくくなります。

選択肢から1つを選ぶ仕組みがあると便利
  • 0(日曜日)の場合:「今日は定休日です」と表示
  • 1(月曜日)の場合:「9時〜22時まで営業」と表示
  • 2(火曜日)の場合:「9時〜22時まで営業」と表示
  • 3(水曜日)の場合:「特売日! 7時〜24時まで営業」と表示
  • 4(木曜日)の場合:「9時〜22時まで営業」と表示
  • 5(金曜日)の場合:「9時〜22時まで営業」と表示
  • 6(土曜日)の場合:「12時〜20時まで営業」と表示


「曜日」という基準を使って、当てはまる選択肢の処理を実行すればよい。

  条件分岐(曜日番号が) {
  	0の場合:「今日は定休日です」と表示
  	3の場合:「12時〜20時まで営業」と表示
  	6の場合:「12時〜20時まで営業」と表示
  	それ以外の場合:「9時〜22時まで営業」と表示
  }

switch文の使い方

  • 選択肢の多い処理をすっきり扱う
  • 「default」には、どれにも当てはまらなかった時の処理を記述します
  switch(変数1) {
  	case 値1:
  	 処理A
  	case 値2:
  	 処理B
  	default:
  	 処理X
  }
曜日ごとに挨拶を切り替える
  • 「break文」は、「switch文」から抜けるための命令です
<?php
switch(曜日番号) {
    case 0:
  	 echo '今日は定休日です';
  	 break;
    case 3:
  	 echo '特売日! 7時〜24時まで営業';
  	 break;
    case 6:
  	 echo '12時〜20時まで営業';
  	 break;
    default:
  	 echo '9時〜22時まで営業';
}
?>
  • 実際の記述は、以下のようになります
<?php
  $w = date('w');
  
  switch ($w)  {
    case 0:
      echo '今日は定休日です';
      break;
    case 3:
      echo '特売日! 7時〜24時まで営業';
      break;
    case 6:
      echo '12時〜20時まで営業';
      break;
    default:
      echo '9時〜22時まで営業';
}
?>
  • 「月曜日」の場合


switch文で「おみくじ」を作る

  • 「mt_rand関数」は、指定した範囲の数値をランダムに作成します
  • 「mt_rand(1, 5)」と指定すると、1から5までの数値がランダムに作成されます
<?php
$a = mt_rand(1, 5);
  
switch ($a)  {
  case 1:
      echo '大吉';
      break;
  case 2:
      echo '中吉';
      break;
  case 3:
      echo '小吉';
      break;
  case 4:
      echo '';
      break;
  default:
      echo '';
}
?>