【PHP】ループ処理を行う方法

PHPは、サーバーサイドのスクリプト言語として非常にポピュラーです。この記事では、PHPでのループ処理の基本を解説します。ループ処理は、特定の条件下で繰り返し同じタスクを実行するための非常に便利なツールです。

forループ: 数値に基づいた繰り返し

forループは、特定の回数だけ処理を繰り返す場面において最も使われるループの1つです。

for ($i = 0; $i < 10; $i++) {
    echo $i . '<br>';
}

この例では、0から9までの数字を順番に表示します。初期値、条件、増分の3つの部分で構成されるforループは、数値に基づいた繰り返し処理に適しています。

whileループ: 条件が真の間だけ続ける

whileループは、指定された条件が真である間、繰り返し処理を実行します。

$count = 0;
while ($count < 10) {
    echo $count . '<br>';
    $count++;
}

この例も0から9までの数字を表示しますが、処理の流れが直感的に理解しやすいのが特徴です。

do-whileループ: まず実行してから条件を確認

do-whileループは、他のループと異なり、最低1回は処理が実行されるのが特徴です。

$count = 0;
do {
    echo $count . '<br>';
    $count++;
} while ($count < 10);

この形式のループは、条件判定前に処理を実行するケースに適しています。

foreachループ: 配列やオブジェクトの要素を順に処理

foreachループは、配列やオブジェクトの各要素に対して繰り返し処理を行いたいときに使用します。

$array = array("apple", "banana", "cherry");
foreach ($array as $fruit) {
    echo $fruit . '<br>';
}

この例では、配列内の各フルーツ名を順に表示します。配列の要素数が事前にわからない場合でも、foreachを使用することで簡単に各要素を処理できます。

注意点: 無限ループの危険性

ループ処理の強力さを享受する一方で、無限ループのリスクにも注意が必要です。誤った条件やロジックにより、ループが終了しない場合、システムのリソースを過度に消費し、アプリケーションが応答しなくなる恐れがあります。

サンプルコード

実例として、以下は「ToDoリスト」のシンプルな機能をPHPで実装する例です。

<?php
// データを保存するファイル
$file = 'todos.txt';

// POSTリクエストの場合、新しいToDoを追加
if ($_SERVER['REQUEST_METHOD'] === 'POST' && !empty($_POST['todo'])) {
    file_put_contents($file, $_POST['todo'] . PHP_EOL, FILE_APPEND);
}

// 保存されているToDoの読み込み
$todos = [];
if (file_exists($file)) {
    $todos = file($file, FILE_IGNORE_NEW_LINES);
}
?>

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>ToDoリスト</title>
</head>
<body>
    <h1>ToDoリスト</h1>

    <!-- ToDoの追加フォーム -->
    <form action="" method="post">
        <input type="text" name="todo" placeholder="新しいToDoを入力">
        <input type="submit" value="追加">
    </form>

    <!-- ToDoの一覧表示 -->
    <ul>
    <?php foreach ($todos as $todo): ?>
        <li><?php echo htmlspecialchars($todo, ENT_QUOTES, 'UTF-8'); ?></li>
    <?php endforeach; ?>
    </ul>
</body>
</html>
  1. 上記のコードをtodolist.phpなどのファイル名で保存します。
  2. サーバー上で該当のPHPファイルを開くか、ローカルの環境でPHPを実行します。
  3. ブラウザから該当のURLにアクセスすると、ToDoリストの画面が表示されます。
  4. 新しいToDoをテキストボックスに入力し、「追加」ボタンをクリックすると、ToDoがリストに追加されます。

この実例は非常に基本的なものですが、ファイルを使ってデータを保存している点や、ループを使用してデータを一覧表示している点など、PHPの基本的な機能を活用しています。

サンプル「ToDoリスト」

まとめ

PHPのループ処理は、コードの中で繰り返し特定のタスクを実行するための非常に効果的なツールです。for、while、do-while、およびforeachは、それぞれ異なるシナリオに適しており、適切なループを選択することで効率的なプログラムを書くことができます。しかし、無限ループのリスクも忘れずに、条件やロジックを慎重に設計することが不可欠です。この基本をしっかりと掴むことで、PHPのプログラミングがさらにスムーズになることでしょう。