PHPのif文を使ってみよう!

📁 作成ファイル・保存場所

XAMPPがインストールされているhtdocs フォルダに以下のファイルを作成してください。

ファイル名内容
htdocs/php-basic/03.phpPHPとHTML
  • XAMPP(Apacheが起動していること)
  • XAMPPがインストールされているhtdocs フォルダに内に作成されていること

目的

  • if / else による条件分岐を理解する
  • 条件に応じて画面に異なる内容を出力できるようになる
  • switch文・三項演算子を知る

チェックポイント

  • if文で「条件に応じた処理」が書けているか?
  • 複数条件のときにelseifを使えているか?
  • switch文に適した場面がわかるか?
  • 三項演算子の省略記法を理解できたか?

条件分岐 if文やswitch文

if文とは?

if文は「条件に応じて処理を変える」ための基本構文です。
指定した条件が真(true)の場合にのみ、その中の処理を実行します。

if (条件) {
    // 条件がtrueのとき実行する処理
} elseif (別の条件) {
    // 別の条件がtrueのときの処理
} else {
    // どの条件にも当てはまらなかったときの処理
}


switch文とは?

switch文は、複数の選択肢(分岐)があるときに使える構文です。if...else if...elseの代わりとして、特定の値に応じて処理を振り分けたいときに便利です。

switch (評価する値) {
    case 値1:
        // 値1に一致したときの処理
        break;
    case 値2:
        // 値2に一致したときの処理
        break;
    default:
        // どのcaseにも一致しないときの処理
}



サンプルコード

<?php
$signal = 'yellow';

switch ($signal) {
    case 'red':
        echo '止まれ';
        break;
    case 'yellow':
        echo '注意して進め';
        break;
    case 'green':
        echo '進め';
        break;
    default:
        echo '信号無視です';
}
?>


  • $signal の値が 'yellow' なので「注意して進め」が表示されます。
  • case のあとに break を入れることで、処理が終わったら分岐から抜けます。
  • default はどの case にも当てはまらなかったときの処理です。

break を忘れるとどうなる?

break を書き忘れると、そのまま次の case に処理が流れてしまいます(これを「フォールスルー(fall through)」と呼びます)。たとえば case 'yellow': に該当したあとに break; がないと、その下の case 'red': まで実行されてしまい、意図しないメッセージが表示されることがあります

case 'yellow':
  echo '注意して進め';
// break がないと下の case も実行される!
case 'red':
  echo '止まってください';

このようなミスを防ぐためにも、各 case の末尾には必ず break; を入れるのが基本です。※ 例外的に、あえて break を書かず「複数の条件をまとめて同じ処理にする」テクニックもありますが、最初のうちは避けたほうが安全です。

三項演算子(条件演算子)とは?

条件によって、値や処理を一行で分けたいときに使う、省略形のif文です。

条件式 ? 真のときの値 : 偽のときの値;

サンプルコード

<?php
$age = 20;
$message = ($age >= 18) ? '大人です' : '未成年です';
echo $message;
?>
  • $age >= 18true なので、$message には '大人です' が代入されます。
  • 簡単な条件分岐を1行で書きたいときに便利です。
  • 読みにくくなる場合は、通常の if 文を使いましょう。

PHP基礎トレーニング

<?php
// 0〜100 の乱数をスコアとして生成
$score = mt_rand(0, 100);
$message = '';

// 条件分岐による判定
if ($score >= 80) {
    $message = '合格です!';
} elseif ($score >= 60) {
    $message = 'もう少しで合格です';
} else {
    $message = '不合格です…';
}
?>
<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>PHP if文の練習</title>
</head>
<body>
  <h1>スコア判定</h1>
  <p>スコア:<?php echo $score; ?> 点</p>
  <p>判定結果:<?php echo $message; ?></p>
</body>
</html>

mt_rand()関数

mt_rand()は乱数を発生させる関数です。mt_rand() によって 0〜100 の中からランダムに選ばれた「スコア(点数)」を格納しています。リロードするたびに変わります。

$message = ”;

判定結果(例:合格・不合格など)を入れるための「空の変数」です。最初に空文字(”)で初期化しておき、あとで if文 によって中身が代入されます。未定義の変数を使うと「Notice(注意)」という警告が出ることがあり、予期しない動作の原因になります。そのため、事前に $message = ''; として初期化しておくことが推奨されます。

表示確認の手順

下記のコード入力が終わったら、以下の手順で動作を確認してみましょう。

  1. XAMPP を起動
     「Apache」が起動していることを確認します。
  2. ブラウザを開く
     Google Chrome など、普段使っているブラウザを開きます。
  3. アドレスバーに入力
     次のURLを直接入力して Enter を押します
http://localhost/php-basic/
  1. 01.php をクリック
     フォルダ一覧の中に「02.php」というファイル名が見えたら、それをクリックしてください。
  2. ページが表示されれば成功!
     「PHP基礎学習のスタートです」や「ウェブトレーニングで頑張りましょう」などの文字が表示されていれば、PHPが正しく動いています。

PHP応用トレーニング

<?php
// 0(日)〜6(土)までの数値を取得
$day = date('w'); // 例:0なら日曜、1なら月曜…
$message = '';

switch ($day) {
    case 0:
        $message = '今日は日曜日です。ゆっくり休みましょう。';
        break;
    case 1:
        $message = '月曜日、今週もがんばろう!';
        break;
    case 2:
        $message = '火曜日です。';
        break;
    case 3:
        $message = '水曜日です。週の真ん中!';
        break;
    case 4:
        $message = '木曜日、あと少しで週末!';
        break;
    case 5:
        $message = '金曜日、ラストスパート!';
        break;
    case 6:
        $message = '土曜日、リラックスしよう!';
        break;
    default:
        $message = '不明な曜日です';
}
?>
<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>switch文の練習</title>
</head>
<body>
  <h1>曜日ごとのメッセージ</h1>
  <p><?php echo $message; ?></p>
</body>
</html>

date() 関数とは?

date() 関数は、現在の日時を取得するためのPHPの関数です。
引数に指定した「フォーマット文字」によって、取得したい情報を自由にカスタマイズできます。

書き方説明例(2025年7月5日の場合)
date('Y')西暦4桁の年2025
date('m')2桁の月07
date('d')2桁の日05
date('w')曜日を数字で取得(0:日曜〜6:土曜)6
date('H:i')時:分(24時間表記)14:30 など

date('w') の意味

曜日を「数値」で取得する(0 が日曜、1 が月曜、…、6 が土曜)この値を switch文 に渡して、それぞれの曜日に応じたメッセージを表示しています。