一尘不染

如何在Twig模板的for循环中使用break或Continue?

php

我尝试使用一个简单的循环,在我的实际代码中,这个循环更加复杂,我需要break像这样的迭代:

{% for post in posts %}
    {% if post.id == 10 %}
        {# break #}
    {% endif %}
    <h2>{{ post.heading }}</h2>
{% endfor %}

我如何使用的行为,breakcontinue在枝杈PHP控制结构?


阅读 796

收藏
2020-05-29

共1个答案

一尘不染

通过将新变量设置为迭代标志, 几乎 可以完成此操作break

{% set break = false %}
{% for post in posts if not break %}
    <h2>{{ post.heading }}</h2>
    {% if post.id == 10 %}
        {% set break = true %}
    {% endif %}
{% endfor %}

一个丑陋但可行的示例continue

{% set continue = false %}
{% for post in posts %}
    {% if post.id == 10 %}
        {% set continue = true %}
    {% endif %}
    {% if not continue %}
        <h2>{{ post.heading }}</h2>
    {% endif %}
    {% if continue %}
        {% set continue = false %}
    {% endif %}
{% endfor %}

但是, 没有 性能收益,只有类似于内置PHP break和内置continuePHP语句的行为。

2020-05-29