カテゴリ: CodeIgniter 更新日: 2026/02/14

PHPのif文の使い方を完全ガイド!初心者でもわかる乱数生成

CodeIgniterのビューで条件分岐・繰り返しを書く方法
CodeIgniterのビューで条件分岐・繰り返しを書く方法

先生と生徒の会話形式で理解しよう

生徒

「CodeIgniterのビューの中で、条件によって表示を変えたり、データを繰り返し表示したりする方法を教えてください!」

先生

「PHPでは、if文を使って、簡単に条件分岐することができます。CodeIgniterのビューでも、通常のPHPと同じように書けますが、HTMLと混ぜて書くときは『代替構文』という書き方を使うと、初心者の方でもコードが読みやすくなりますよ。」

生徒

「代替構文ですか?具体的にはどのように使うんですか?」

先生

「それでは、基本的な使い方を見ていきましょう!」

1. if文とは?

1. if文とは?
1. if文とは?

PHPのif文は、プログラム内で条件に応じて処理を分岐させるためのものです。例えば、ある条件が「真(true)」であれば特定の処理を実行し、そうでなければスキップする、といった操作が可能になります。分岐処理を理解することで、プログラムの流れを制御できるようになり、より複雑なアプリケーションを作ることができるようになります。

CodeIgniter(コードイグナイター)というPHPのフレームワークにおいて、画面の見た目を作る「ビュー(View)」ファイルの中でも、このif文は非常によく使われます。例えば、「ログインしている人にはログアウトボタンを表示し、ログインしていない人にはログインボタンを表示する」といった切り替えが、このif文一つで実現できるのです。

2. ビューで見やすい「代替構文」の基本

2. ビューで見やすい「代替構文」の基本
2. ビューで見やすい「代替構文」の基本

プログラミングを始めたばかりの方が、HTMLの中にPHPのコードを書こうとすると、波括弧({ })がどこで始まり、どこで終わっているのか分からなくなることがよくあります。そこでCodeIgniterや一般的なPHPの開発では、ビューファイルの中で「代替構文」という書き方を推奨しています。

代替構文では、波括弧の代わりに「コロン(:)」と「endif;」を使います。これにより、HTMLの構造が崩れにくく、後から見返したときに「ここでif文が終わっているんだな」ということが一目で分かるようになります。これは、まるで文章の最後に句読点を打つのと同じくらい、整理整頓に役立つルールです。

3. 【実践】if文を使った条件分岐のサンプルコード

3. 【実践】if文を使った条件分岐のサンプルコード
3. 【実践】if文を使った条件分岐のサンプルコード

それでは、実際にCodeIgniterのビューファイルで、条件によってメッセージを変えるコードを書いてみましょう。今回は「ラッキーカラー」を表示する簡単な例を作成します。変数の中身が特定の色だった場合に、お祝いのメッセージを表示する仕組みです。


<?php $lucky_color = 'red'; ?>

<div>
    <p>今日のあなたのラッキーカラーは「<?php echo $lucky_color; ?>」です!</p>
    
    <?php if ($lucky_color === 'red'): ?>
        <p class="text-danger">情熱的な赤色ですね!今日は情熱を持って行動すると吉です。</p>
    <?php elseif ($lucky_color === 'blue'): ?>
        <p class="text-primary">落ち着いた青色ですね!今日は冷静な判断ができそうです。</p>
    <?php else: ?>
        <p>素敵な一日を過ごしてくださいね!</p>
    <?php endif; ?>
</div>

実行結果は以下のようになります。$lucky_colorが'red'なので、最初のメッセージが表示されます。


今日のあなたのラッキーカラーは「red」です!
情熱的な赤色ですね!今日は情熱を持って行動すると吉です。

4. 乱数生成を使っておみくじを作ってみよう

4. 乱数生成を使っておみくじを作ってみよう
4. 乱数生成を使っておみくじを作ってみよう

「乱数(らんすう)」とは、サイコロを振ったときのように、コンピュータがデタラメに選んだ数字のことです。PHPではrand()という便利な命令(関数)を使って、簡単に乱数を作ることができます。これを使って、アクセスするたびに結果が変わるおみくじを作ってみましょう。

プログラミングにおいて、ランダムな動きを取り入れることは、ユーザーに楽しさを提供する素晴らしい方法です。1から3までの数字をランダムに発生させ、1なら大吉、2なら中吉、3なら小吉と表示させる処理を作ります。これで、ページを更新するたびに運勢が変わる動的な仕組みが完成します。


<?php 
// 1から3までの数字をランダムに作成します
$omikuji = rand(1, 3); 
?>

<div class="card shadow-sm p-4">
    <h3>今日のおみくじ結果</h3>
    <?php if ($omikuji === 1): ?>
        <p class="fw-bold text-warning">【大吉】 最高の運勢です!何をやってもうまくいきます。</p>
    <?php elseif ($omikuji === 2): ?>
        <p class="fw-bold text-success">【中吉】 良い一日になりそうです。笑顔を忘れずに。</p>
    <?php else: ?>
        <p class="fw-bold text-secondary">【小吉】 平穏な一日です。コツコツ頑張りましょう。</p>
    <?php endif; ?>
</div>

5. データの繰り返し処理「foreach文」とは?

5. データの繰り返し処理「foreach文」とは?
5. データの繰り返し処理「foreach文」とは?

Webサイトでは、お知らせ一覧や商品リストなど、同じような形式のデータを並べて表示することがたくさんあります。このとき、一つずつ手作業でHTMLを書くのはとても大変ですし、データの数が変わると対応できません。そこで使われるのが「繰り返し処理(ループ)」です。

PHPで最もよく使われる繰り返し処理がforeach文です。これは、データの集まり(配列)から、中身を一つずつ取り出して処理を行う命令です。CodeIgniterでは、コントローラーから渡されたデータベースの情報を、このforeach文を使ってビューに表示するのが一般的な流れになります。

6. 【実践】foreach文でリストを表示する方法

6. 【実践】foreach文でリストを表示する方法
6. 【実践】foreach文でリストを表示する方法

簡単な「買い物リスト」を表示するコードを書いてみましょう。配列という箱の中に複数の商品名を入れておき、それを順番に取り出して箇条書きのリスト(ulタグとliタグ)として表示します。ここでも「代替構文」である「endforeach;」を使うのがポイントです。


<?php 
// 買い物リストのデータ(配列)を用意します
$shopping_list = ['リンゴ', 'バナナ', '牛乳', '卵']; 
?>

<div class="mt-4">
    <h2>買い物メモ</h2>
    <ul class="list-group">
        <?php foreach ($shopping_list as $item): ?>
            <li class="list-group-item">
                <i class="bi bi-check2-circle"></i> <?php echo $item; ?>
            </li>
        <?php endforeach; ?>
    </ul>
</div>

このコードを実行すると、配列に入っている「リンゴ」「バナナ」といった言葉が、自動的に一つずつリストの項目として出力されます。データが増えても、プログラムが自動で繰り返してくれるので、非常に効率的です。


買い物メモ
・リンゴ
・バナナ
・牛乳
・卵

7. 条件分岐と繰り返しを組み合わせるテクニック

7. 条件分岐と繰り返しを組み合わせるテクニック
7. 条件分岐と繰り返しを組み合わせるテクニック

if文とforeach文を組み合わせることで、さらに高度な表示が可能になります。例えば、「商品の在庫があるものだけを表示する」や「特定の条件に当てはまる項目だけ色を変える」といった処理です。これは実際のWebサイト制作でも、非常に多く使われる必須のテクニックと言えるでしょう。

例として、テストの点数一覧を表示し、赤点(40点未満)の人だけを目立たせるプログラムを考えてみましょう。まず、全員のデータを繰り返し取り出し、その中で一人一人の点数をif文で判定します。このように「繰り返しの中に条件分岐を入れる」という考え方は、プログラミングのパズルのようで面白い部分です。


<?php 
// 生徒の名前と点数のデータ
$scores = [
    '田中さん' => 85,
    '佐藤さん' => 35,
    '鈴木さん' => 60,
    '高橋さん' => 20
];
?>

<div class="p-3 bg-light">
    <h4>テスト結果一覧</h4>
    <table class="table table-bordered bg-white">
        <thead>
            <tr><th>名前</th><th>点数</th><th>判定</th></tr>
        </thead>
        <tbody>
            <?php foreach ($scores as $name => $score): ?>
                <tr>
                    <td><?php echo $name; ?></td>
                    <td><?php echo $score; ?>点</td>
                    <td>
                        <?php if ($score >= 40): ?>
                            <span class="badge bg-primary">合格</span>
                        <?php else: ?>
                            <span class="badge bg-danger">追試</span>
                        <?php endif; ?>
                    </td>
                </tr>
            <?php endforeach; ?>
        </tbody>
    </table>
</div>

8. エスケープ処理と安全な表示について

8. エスケープ処理と安全な表示について
8. エスケープ処理と安全な表示について

最後に、Webプログラミングで絶対に忘れてはいけないのが「セキュリティ」です。ユーザーが入力した文字をそのまま画面に表示すると、悪意のあるプログラムが実行されてしまう危険性があります。これを防ぐために、特殊な記号を無害な文字に変換することを「エスケープ」と呼びます。

CodeIgniterには、esc()という便利な関数が用意されています。初心者のうちは、画面に何かを表示するときは「echo esc($変数名);」と書く習慣をつけておくと、安全なサイトを作ることができます。今回のサンプルでは分かりやすさを優先して単純な表示にしていますが、実際のお仕事や公開するサイトでは、この安全対策がとても大切になります。

9. ビューファイル作成時のコツと注意点

9. ビューファイル作成時のコツと注意点
9. ビューファイル作成時のコツと注意点

ビューファイルは、あくまで「見た目」を担当する場所です。そのため、複雑な計算やデータベースの難しい操作は「コントローラー」という別の場所で行い、ビューでは「受け取ったデータをどう見せるか」に集中するのが良い設計とされています。これを「役割分担(関心の分離)」と呼びます。

if文やforeach文を使うときも、あまりに長く複雑になりすぎる場合は、データの方を事前に整理できないか考えてみましょう。コードがシンプルであればあるほど、後からデザインを変更したり、間違い(バグ)を見つけたりするのが楽になります。見やすいコードは、自分だけでなく、一緒に働く仲間を助けることにも繋がります。

カテゴリの一覧へ
新着記事
New1
CodeIgniter
CodeIgniterでRESTful API開発!初心者でもわかる全体構成ガイド
New2
Symfony
Symfonyのコントローラとは?作成・構造・役割を初心者向けにやさしく解説!
New3
Symfony
Symfonyでバリデーションメッセージを多言語対応する方法!初心者でもわかる国際化の基本
New4
Symfony
Symfonyのキャッシュ機構の基本を理解しよう(HTTPとアプリ別)
人気記事
No.1
Java&Spring記事人気No1
Laravel
Laravelのシングルアクションコントローラとは?使い方と利点
No.2
Java&Spring記事人気No2
Laravel
Laravelで動的パラメータをルートに渡す方法!初心者にもやさしいルートパラメータの使い方入門
No.3
Java&Spring記事人気No3
Laravel
LaravelのBlade構文まとめ!@if @foreach など基本ディレクティブ解説
No.4
Java&Spring記事人気No4
Laravel
Laravelでキャッシュを使う方法(ファイル・Redis・Memcached)
No.5
Java&Spring記事人気No5
Laravel
Laravelで名前付きルートを設定する方法!初心者でもわかるroute()関数の使い方
No.6
Java&Spring記事人気No6
Laravel
Laravelのマイグレーション履歴を確認する方法を徹底解説!migrate:statusの使い方
No.7
Java&Spring記事人気No7
Symfony
Symfonyの依存性注入(DI)とは?コンストラクタでの注入方法を初心者向けに徹底解説
No.8
Java&Spring記事人気No8
Laravel
Laravelのルート一覧を確認する方法!初心者でもわかるphp artisan route:listの使い方