PHP while文の使い方

この記事のポイント

PHPにおけるwhile文について全く知識がない方でも理解できるよう、基本的な概念から実用的な使い方まで段階的に説明していきます。

  • 条件が満たされている限り処理を繰り返す制御構文の仕組み
  • 基本的な構文パターンと実際に動作するコード例の書き方
  • 配列処理やファイル読み込みなど実際の開発での具体的な活用法

プログラミング初心者の方も安心して学習を進められるよう、豊富なサンプルコードとその実行結果を用意しました。

目次

while文とは?

while文は、指定された条件が真(true)である限り、同じ処理を繰り返し実行する制御構造です。条件式が偽(false)になるまで、ブロック内のコードが何度も実行されます。この繰り返し処理をループと呼び、プログラミングにおいて非常に重要な概念の一つです。

while文の特徴は、ループの実行前に条件をチェックすることです。そのため、最初から条件が偽の場合、ループ内の処理は一度も実行されません。この仕組みにより、安全で効率的な繰り返し処理が可能になります。

【関連】
PHPをもっと詳しく学ぶならpaizaラーニング

基本構文

while文の基本的な構文は「while (条件式) { 実行する処理 }」という形式です。条件式には比較演算子や論理演算子を使って、真偽を判定できる式を記述します。最も重要なポイントは、ループ内で条件を変化させる処理を必ず含めることです。これを忘れると無限ループになってしまいます。以下に基本的なパターンのコード例を示します。

<?php $count = 1; while ($count <= 3) { echo "カウント: " . $count . "\n"; $count++; } ?>

出力結果

カウント: 1
カウント: 2
カウント: 3
<?php $animals = ["イヌ", "ネコ", "ウサギ"]; $index = 0; while ($index < count($animals)) { echo $animals[$index] . "\n"; $index++; } ?>

出力結果

イヌ
ネコ
ウサギ

実用例

実際の開発現場では、while文はさまざまな場面で活用されています。データベースからの結果取得、ファイルの読み込み処理、ユーザー入力の検証、配列やオブジェクトの操作など、多岐にわたる用途があります。

ここでは、日常的な開発でよく使われる8つの実用的なサンプルコードを紹介します。それぞれのコード例では、while文の特性を活かした効率的な処理方法を学べます。各例では動物を使った親しみやすい内容で、コードの動作を理解しやすくしています。

数値のカウントアップ処理

変数の値を段階的に増加させながら処理を繰り返す基本的な例です。初期値を設定し、条件を満たす間は処理を継続し、最後にカウンターを更新します。このパターンはループ処理の基礎となる概念です。

<?php $dog_count = 1; while ($dog_count <= 5) { echo "イヌが" . $dog_count . "匹います\n"; $dog_count++; } ?>

出力結果

イヌが1匹います
イヌが2匹います
イヌが3匹います
イヌが4匹います
イヌが5匹います

配列要素の順次処理

配列のインデックスを利用して、全ての要素に対して同じ処理を適用する例です。配列の長さを取得し、インデックスが配列の範囲内にある限り処理を継続します。配列操作の基本的なテクニックの一つです。

<?php $pets = ["ハムスター", "インコ", "カメ", "キンギョ"]; $i = 0; while ($i < count($pets)) { echo ($i + 1) . "番目のペット: " . $pets[$i] . "\n"; $i++; } ?>

出力結果

1番目のペット: ハムスター
2番目のペット: インコ
3番目のペット: カメ
4番目のペット: キンギョ

条件に基づく値の検索処理

特定の条件を満たす値が見つかるまで配列を検索する処理です。目的の値が発見された時点でループを終了させるため、効率的な検索が可能です。break文を使用してループを制御する実用的な例です。

<?php $zoo_animals = ["ライオン", "ゾウ", "キリン", "パンダ"]; $target = "キリン"; $found_index = 0; while ($found_index < count($zoo_animals)) { if ($zoo_animals[$found_index] == $target) { echo $target . "を発見!位置: " . ($found_index + 1); break; } $found_index++; } ?>

出力結果

キリンを発見!位置: 3

文字列の文字数カウント処理

文字列の各文字を順次処理しながら、特定の条件を満たす文字の個数を数える例です。文字列の長さ分だけループを実行し、各位置の文字をチェックします。文字列操作の基本的なパターンです。

<?php $animal_name = "ネコネコネコ"; $char_count = 0; $position = 0; while ($position < mb_strlen($animal_name)) { if (mb_substr($animal_name, $position, 1) == "コ") { $char_count++; } $position++; } echo "「コ」の文字が" . $char_count . "個見つかりました"; ?>

出力結果

「コ」の文字が3個見つかりました

数値の累積計算処理

配列に格納された数値を順次加算して合計値を求める例です。初期値をゼロに設定し、配列の各要素を順番に加算していきます。数値処理やデータ集計でよく使われる基本的なパターンです。

<?php $animal_weights = [15, 3, 25, 8, 12]; $total_weight = 0; $index = 0; while ($index < count($animal_weights)) { $total_weight += $animal_weights[$index]; $index++; } echo "動物の総重量: " . $total_weight . "kg"; ?>

出力結果

動物の総重量: 63kg

逆順での配列処理

配列の最後の要素から最初の要素に向かって逆順で処理を行う例です。配列のインデックスを減少させながらループを実行し、要素を逆順でアクセスします。データの逆順表示や逆順処理で活用されます。

<?php $farm_animals = ["ウシ", "ブタ", "ニワトリ", "ヒツジ"]; $last_index = count($farm_animals) - 1; while ($last_index >= 0) { echo $farm_animals[$last_index] . " "; $last_index--; } ?>

出力結果

ヒツジ ニワトリ ブタ ウシ

条件付きフィルタリング処理

配列の要素から特定の条件を満たすものだけを抽出する例です。各要素をチェックし、条件に合致する場合のみ結果に含めます。データの絞り込みや選別処理でよく使用される実用的なテクニックです。

<?php $animal_lengths = [2, 8, 3, 12, 5]; $long_animals = []; $check_index = 0; while ($check_index < count($animal_lengths)) { if ($animal_lengths[$check_index] >= 5) { $long_animals[] = $animal_lengths[$check_index]; } $check_index++; } echo "5cm以上の動物: " . implode(", ", $long_animals) . "cm"; ?>

出力結果

5cm以上の動物: 8, 12, 5cm

ネストしたループ処理

while文を入れ子構造にして、二重のループ処理を実現する例です。外側のループと内側のループがそれぞれ異なる条件で動作し、複雑な繰り返し処理が可能です。多次元配列の処理や組み合わせ処理で使用されます。

<?php $animal_groups = [["トラ", "ヒョウ"], ["クマ", "パンダ"]]; $outer = 0; while ($outer < 2) { $inner = 0; while ($inner < 2) { echo $animal_groups[$outer][$inner] . " "; $inner++; } $outer++; } ?>

出力結果

トラ ヒョウ クマ パンダ

まとめ

while文は、条件に基づいた繰り返し処理を実現する制御構造です。基本的な構文から実用的なサンプルまで、さまざまなパターンを学ぶことで、効率的なプログラムを作成できるようになります。while文をマスターすることは、PHPプログラミングの基礎を固める重要なステップです。適切に活用することで、複雑な処理も簡潔なコードで実現できます。

while文の活躍する場面

  • データベースから取得した結果セットの順次処理での活用
  • ファイルの行単位読み込みや大容量データの分割処理
  • ユーザー入力の検証や条件に基づく分岐処理の実装

重要なポイント

  • ループ内で必ず条件を変化させる処理を含めること
  • 配列の範囲外アクセスを防ぐ適切な境界値チェック
  • break文やcontinue文を使った柔軟なループ制御の実装

これらの特徴を理解し、今回紹介したサンプルコードを参考にして、実際の開発でwhile文を効果的に活用してください。基本的な繰り返し処理の使い方をマスターすることで、より柔軟で効率的なロジック構築が可能になります。

while文の習得は、PHPプログラミングにおける制御構造の理解を深める第一歩となり、実務でも役立つ堅実なスキルとなるでしょう。

レベルを更に上げたい方はpaizaプログラミングスキルチェックへ

  1. paizaラーニングトップ
  2. リファレンス
  3. PHPのリファレンス記事一覧
  4. PHP while文の使い方