カテゴリ: Symfony 更新日: 2025/11/05

Twigのif文とfor文を完全ガイド!初心者でもわかる条件分岐とループ処理

Twigの条件分岐とループ処理の書き方
Twigの条件分岐とループ処理の書き方

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

生徒

「Twigのテンプレートで、条件によって表示を変えたり、繰り返し表示したりできますか?」

先生

「はい、Twigにはif文for文があって、条件分岐やループ処理が簡単に書けますよ。」

生徒

「それってプログラムみたいですね。初心者でも使えますか?」

先生

「もちろんです。Twigは初心者でも使いやすいテンプレート言語なので、やさしく解説していきますね!」

1. Twigで条件分岐をする方法(if文)

1. Twigで条件分岐をする方法(if文)
1. Twigで条件分岐をする方法(if文)

まずはTwigで「条件によって表示を変える」方法を学びましょう。Twigではif文を使って、ある条件が「真(true)」なら指定した内容を表示できます。

たとえば、ログインしているかどうかで表示を切り替える場合などに使われます。


{% if user %}
  <p>ようこそ、{{ user.name }}さん!</p>
{% else %}
  <p>ログインしてください。</p>
{% endif %}

{% if 条件 %}で始まり、{% else %}で分岐し、{% endif %}で終了します。これはTwig特有の書き方で、PHPのif文とは少し異なりますが、覚えるととても簡単です。

2. Twigで繰り返し処理をする方法(for文)

2. Twigで繰り返し処理をする方法(for文)
2. Twigで繰り返し処理をする方法(for文)

次に、Twigのfor文を使って、リストや配列の中身を順番に表示する方法を紹介します。これは「ループ処理」と呼ばれるものです。

たとえば、商品一覧やメッセージの一覧を画面に表示するときに便利です。


<ul>
  {% for item in items %}
    <li>{{ item }}</li>
  {% endfor %}
</ul>

この例では、itemsという配列の中身を1つずつ取り出して、itemとして表示しています。

3. Twigの条件文で使える演算子

3. Twigの条件文で使える演算子
3. Twigの条件文で使える演算子

Twigでは、if文の中で次のような演算子(条件を比べる記号)を使うことができます。

  • ==(等しい)
  • !=(等しくない)
  • >(より大きい)
  • <(より小さい)
  • in(含まれている)

たとえば、ある商品が在庫切れかどうかをチェックしたい場合は、次のように書きます。


{% if stock == 0 %}
  <p>在庫切れです</p>
{% endif %}

4. Twigのループ内で使える便利な変数

4. Twigのループ内で使える便利な変数
4. Twigのループ内で使える便利な変数

forループの中では、loopという特別な変数が自動で使えるようになります。これを使うと、ループの回数や最初・最後の判定などができます。


<ul>
  {% for user in users %}
    <li>
      {{ loop.index }}番目のユーザー:{{ user.name }}
      {% if loop.first %}(最初の人){% endif %}
      {% if loop.last %}(最後の人){% endif %}
    </li>
  {% endfor %}
</ul>

このように、loop.indexは現在のループの番号(1から始まる)を表し、loop.firstloop.lastで最初や最後の要素かどうかを判定できます。

5. Twigの空データへの対応(ループのelse)

5. Twigの空データへの対応(ループのelse)
5. Twigの空データへの対応(ループのelse)

ループ処理をするとき、データが空の場合に何も表示されないと困りますよね。Twigではforループのあとにelseを使うことで、データが空だった場合の処理も書けます。


<ul>
  {% for item in items %}
    <li>{{ item }}</li>
  {% else %}
    <li>データがありません</li>
  {% endfor %}
</ul>

このように、itemsが空ならelseの中が実行されます。とても便利ですね。

6. Twigで条件とループを組み合わせる

6. Twigで条件とループを組み合わせる
6. Twigで条件とループを組み合わせる

実際の画面では、「ループの中で特定の条件が一致したら何かを表示する」といった複雑な処理もよくあります。Twigではifforを組み合わせることも簡単です。


<ul>
  {% for product in products %}
    {% if product.stock > 0 %}
      <li>{{ product.name }}:在庫あり</li>
    {% else %}
      <li>{{ product.name }}:在庫なし</li>
    {% endif %}
  {% endfor %}
</ul>

このように、商品ごとに在庫があるかどうかをチェックして、表示内容を変えることができます。

7. 実行結果のイメージ

7. 実行結果のイメージ
7. 実行結果のイメージ

例えば、次のような配列items = ['りんご', 'バナナ', 'みかん']をTwigでループしたときの出力結果は次のようになります。


<ul>
  <li>りんご</li>
  <li>バナナ</li>
  <li>みかん</li>
</ul>

Twigでは、HTMLと組み合わせて自由にレイアウトを作れるので、テンプレートエンジンとして非常に使いやすいのです。

関連記事:
カテゴリの一覧へ
新着記事
New1
Laravel
Laravelの認証状態をチェックする方法を完全解説!authとAuth::check()を初心者向けにやさしく説明
New2
CodeIgniter
CodeIgniterのコントローラクラスの作り方を完全ガイド!初心者でもわかる基礎から実践まで
New3
Symfony
Symfonyのフォームラベルを多言語対応!初心者でもわかる翻訳設定ガイド
New4
Laravel
Laravelでユーザー登録機能を作る方法!初心者向けにバリデーションとリダイレクトをやさしく解説
人気記事
No.1
Java&Spring記事人気No1
Laravel
Laravelのデータベース設定方法を完全ガイド!初心者でもわかる.envファイルの使い方
No.2
Java&Spring記事人気No2
Laravel
Laravelのビューとは?Bladeテンプレートの基本を解説
No.3
Java&Spring記事人気No3
Laravel
Laravelでセッションを扱う方法!保存方法と利用例を解説
No.4
Java&Spring記事人気No4
Laravel
Laravelのルート一覧を確認する方法!初心者でもわかるphp artisan route:listの使い方
No.5
Java&Spring記事人気No5
Laravel
Laravelでルーティングを設定する方法!web.phpと基本ルートの書き方を初心者向けに徹底解説
No.6
Java&Spring記事人気No6
Laravel
Laravelのルートキャッシュ機能を活用してパフォーマンス改善!初心者でもわかる完全ガイド
No.7
Java&Spring記事人気No7
Laravel
Laravelでログを出力する方法(Monolog・storage/logs)
No.8
Java&Spring記事人気No8
Laravel
LaravelでルートをBladeテンプレートに記述する方法(route関数)