MENU

PHPの基本から応用まで – 初心者向けチュートリアルシリーズ(第2回:制御構文とループ)

目次

はじめに

前回の基本構文とデータ型の解説に続き、今回はPHPの制御構文とループについて学んでいきます。プログラムの流れを制御する these重要な構文を理解することで、より複雑な処理が可能になります。

条件分岐(if文)

基本的なif文

$age = 20;

if ($age >= 20) {
    echo "成人です";
} else {
    echo "未成年です";
}

else if(elseif)を使った複数条件

$score = 85;

if ($score >= 90) {
    echo "評価A";
} elseif ($score >= 80) {
    echo "評価B";
} elseif ($score >= 70) {
    echo "評価C";
} else {
    echo "評価D";
}

比較演算子

  • == : 等しい
  • === : 型も含めて等しい(推奨)
  • != : 等しくない
  • > : より大きい
  • < : より小さい
  • >= : 以上
  • <= : 以下
// 型の厳密な比較の例
$value1 = "100";  // 文字列
$value2 = 100;    // 整数

if ($value1 == $value2) {    // true
    echo "値は等しい\n";
}

if ($value1 === $value2) {   // false
    echo "型も含めて等しい\n";
}

switch文

複数の条件分岐をより見やすく書ける場合があります:

$fruit = "りんご";

switch ($fruit) {
    case "りんご":
        echo "赤いフルーツです";
        break;
    case "バナナ":
        echo "黄色いフルーツです";
        break;
    case "ブドウ":
        echo "紫のフルーツです";
        break;
    default:
        echo "その他のフルーツです";
}

ループ構文

for文

決まった回数の繰り返しに使用します:

// 1から10までの数を表示
for ($i = 1; $i <= 10; $i++) {
    echo $i . "\n";
}

while文

条件が真の間、処理を繰り返します:

$count = 0;
while ($count < 5) {
    echo "カウント: " . $count . "\n";
    $count++;
}

foreach文

配列の要素を順番に処理する際に使用します:

$fruits = ["りんご", "バナナ", "オレンジ"];

foreach ($fruits as $fruit) {
    echo $fruit . "\n";
}

// キーと値を取得する場合
$scores = [
    "国語" => 85,
    "数学" => 90,
    "英語" => 88
];

foreach ($scores as $subject => $score) {
    echo $subject . ": " . $score . "点\n";
}

実践的な例:ユーザー管理システム

以上の制御構文を組み合わせた実践的な例を見てみましょう:

<?php
// ユーザーデータ
$users = [
    [
        "id" => 1,
        "name" => "山田太郎",
        "age" => 25,
        "membership" => "premium"
    ],
    [
        "id" => 2,
        "name" => "鈴木花子",
        "age" => 30,
        "membership" => "standard"
    ],
    [
        "id" => 3,
        "name" => "佐藤次郎",
        "age" => 19,
        "membership" => "trial"
    ]
];

// ユーザー情報の処理
foreach ($users as $user) {
    echo "ユーザーID: " . $user["id"] . "\n";
    echo "名前: " . $user["name"] . "\n";
    
    // 年齢による処理
    if ($user["age"] >= 20) {
        echo "成人ユーザー\n";
    } else {
        echo "未成年ユーザー\n";
    }
    
    // 会員種別による処理
    switch ($user["membership"]) {
        case "premium":
            echo "プレミアム会員特典が利用可能です\n";
            break;
        case "standard":
            echo "標準的な機能が利用可能です\n";
            break;
        case "trial":
            echo "お試し期間中です\n";
            break;
    }
    
    echo "-------------------\n";
}

注意点とベストプラクティス

  1. コードの可読性
    • インデントを適切に使用する
    • 複雑な条件は変数に分割する
  2. 無限ループの防止
    • while文では必ず終了条件を確認
    • ループ内で終了条件が更新されているか確認
  3. break と continue
    • break: ループを抜ける
    • continue: 次のループへスキップ
// breakとcontinueの使用例
for ($i = 1; $i <= 10; $i++) {
    if ($i == 3) {
        continue;  // 3をスキップ
    }
    if ($i == 8) {
        break;     // 8で終了
    }
    echo $i . "\n";
}

まとめ

今回は、PHPの制御構文とループについて学びました。これらの構文を使いこなすことで、より柔軟なプログラムの作成が可能になります。

練習問題

  1. 1から100までの数字の中で、3の倍数のときは「Fizz」、5の倍数のときは「Buzz」、両方の倍数のときは「FizzBuzz」と表示するプログラムを作成してください。
  2. 以下の配列を使って、各生徒の平均点を計算し、80点以上の生徒だけを表示するプログラムを作成してください:
$students = [
    ["name" => "田中", "scores" => [85, 90, 88]],
    ["name" => "山田", "scores" => [76, 82, 72]],
    ["name" => "佐藤", "scores" => [90, 95, 93]]
];

次回は関数とスコープについて解説していきます。お楽しみに!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次