💡 この記事でわかること
- 制御構文とは何か(プログラムの流れを変えるしくみ)
- if / elseif / else による条件分岐の書き方
- for文・while文で処理を繰り返す方法と、無限ループの注意点
- 配列を1つずつ処理する foreach文の使い方
- break・continue と、WordPressテーマで見かける
: 〜 endif;記法
1. 制御構文とは?
制御構文とは、
👉 プログラムの実行の流れをコントロールするための書き方です。
プログラムは基本的に上から下へ順番に実行されますが、実際には「条件によって処理を変えたい」「同じ処理を何度も繰り返したい」という場面がよくあります。それを実現するのが次の2つです。
- 条件分岐(if文):条件に当てはまるかどうかで処理を切り替える
- 繰り返し(for文・while文・foreach文):同じ処理を何度も実行する
💡 PHPでは、これらのまとまり(ブロック)を波かっこ { } で表し、条件は丸かっこ ( ) の中に書きます。基本文法をまだ確認していない場合は、先に読んでおくとスムーズです。
👉 PHPの基本文法(<?php ?>・echo・変数)についての記事はこちら
2. if文(条件分岐)
基本の形
<?php
$age = 20;
if ($age >= 18) {
echo "成人です"; // 条件が true のときだけ実行される
}👉 if (条件) { 処理 } と書きます。条件は ( ) の中、実行したい処理は { } の中に書きます。
if / elseif / else
<?php
$score = 75;
if ($score >= 80) {
echo "合格";
} elseif ($score >= 60) {
echo "再テスト";
} else {
echo "不合格";
}
// 実行結果: 再テスト👉 条件は上から順に判定され、最初に当てはまった1つのブロックだけが実行されます。「そのほか」の処理は else に書きます(elseif・else は省略できます)。elseif は1語でつなげて書く点に注意してください。
条件式の書き方(比較・論理演算子)
<?php
$age = 25;
$isMember = true;
if ($age >= 20 && $isMember) {
echo "割引対象です";
}==(等しい) /!=(等しくない) /===(型まで含めて等しい)>>=<<=(大小の比較)&&(かつ) /||(または) /!(否定)
👉 「等しい」の比較は == か === です。= 1つは代入なので、if ($x = 5) と書くと条件判定にならず、思わぬ動きになります。== と === の違いは、こちらの記事で解説しています。
👉 PHPのデータ型(真偽値・==と===の違い)についての記事はこちら
3. for文(回数を決めた繰り返し)
for文は、「決まった回数」処理を繰り返したいときに使います。
<?php
for ($i = 0; $i < 3; $i++) {
echo $i;
}
// 実行結果: 0 1 2👉 for (初期化; 条件; 更新) の3つをセミコロンで区切って書きます。
- 初期化(
$i = 0):ループの前に1回だけ実行 - 条件(
$i < 3):true の間くり返す - 更新(
$i++):毎回の処理のあとに実行。$i++は$i = $i + 1と同じ
4. while文(条件が続く限りの繰り返し)
while文は、「条件が true である間、ずっと繰り返す」ときに使います。繰り返す回数が事前に決まっていない場合に向いています。
<?php
$count = 1;
while ($count <= 3) {
echo $count;
$count++; // ← これを忘れると無限ループになる
}
// 実行結果: 1 2 3👉 while文では、ループの中で「条件がいつか false になる処理」を必ず入れます。上の例では $count++ で数を増やしているため、4になった時点で条件が false になり、ループが終わります。
💡 条件がずっと true のままだと、処理が終わらない「無限ループ」になります。コマンドラインで実行が止まらなくなったときは、Ctrl + C で強制終了できます。
5. foreach文(配列の繰り返し)
👉 配列の要素を1つずつ処理するときは foreach を使います。PHPでは、配列のループはこの書き方が基本です。
<?php
$fruits = ["りんご", "みかん", "ぶどう"];
foreach ($fruits as $fruit) {
echo $fruit;
}
// 実行結果: りんご みかん ぶどうキー(添字や項目名)もいっしょに使いたいときは、as $キー => $値 と書きます。
<?php
$scores = ["国語" => 80, "数学" => 65];
foreach ($scores as $subject => $score) {
echo "{$subject}: {$score}点 ";
}
// 実行結果: 国語: 80点 数学: 65点💡 配列そのものの作り方や操作は、別の記事で詳しく解説する予定です。ここでは「配列を回すなら foreach」と覚えておけば十分です。
6. break と continue
break:ループを途中で抜ける
<?php
for ($i = 1; $i <= 10; $i++) {
if ($i === 5) {
break; // 5になったらループを終了
}
echo $i;
}
// 実行結果: 1 2 3 4continue:残りをスキップして次の回へ
<?php
for ($i = 1; $i <= 5; $i++) {
if ($i % 2 === 0) {
continue; // 偶数のときは echo をスキップ
}
echo $i;
}
// 実行結果: 1 3 5👉 break はループそのものを終了、continue はその回だけスキップして繰り返しは続行、という違いです。foreach・while の中でも同じように使えます。
7. 波かっこと、テンプレートでの別の書き方
PHPのブロックは { } で表します。インデント(字下げ)は必須ではありませんが、読みやすさのために揃えるのが基本です。
💡 HTMLの中にPHPの条件分岐を混ぜるときは、{ } の代わりに : 〜 endif; という書き方も使えます。WordPressのテーマファイルでよく見かける形です。
<?php if ($age >= 18): ?>
<p>成人向けのコンテンツです</p>
<?php else: ?>
<p>年齢確認が必要です</p>
<?php endif; ?>👉 同じように、繰り返しにも foreach ( ... ): 〜 endforeach; / for ( ... ): 〜 endfor; / while ( ... ): 〜 endwhile; という形があります。動作は { } 版とまったく同じで、HTMLと混ざったときに読みやすくなります。
8. 制御構文 早見表
| 構文 | 使う場面 | ポイント |
|---|---|---|
| if / elseif / else | 条件によって処理を分ける | 条件は ( )、ブロックは { }。上から順に1つだけ実行 |
| for | 回数が決まった繰り返し | for (初期化; 条件; 更新) |
| while | 条件が続く限りの繰り返し | 更新処理を忘れると無限ループ |
| foreach | 配列の全要素を繰り返す | as $値 / as $キー => $値 |
| break | ループを途中で終了 | ループそのものを抜ける |
| continue | その回だけ処理を飛ばす | 次の繰り返しへ進む |
9. まとめ
- if / elseif / else:条件は
( )、ブロックは{ }。elseifは1語 - for:
for (初期化; 条件; 更新)の3つをセミコロンで区切る - while:条件が true の間くり返す。無限ループに注意
- foreach:配列の繰り返しはこれが基本。
as $キー => $値でキーも取れる - break / continueでループの流れを制御できる
- HTMLに混ぜるときは
: 〜 endif;の別記法も使える(WordPressテーマで頻出)
👉 まずは「if文で条件分岐」「foreachで配列の繰り返し」の2つを、実際にコードを書いて動かしてみましょう。この2つが使えるようになると、PHPでできることが一気に広がります。