symfony中twig的流程控制if,for用法

流程控制

if 语句

if语句在twig中的作用如同if语句在PHP中的一样。
1.你可以通过下面这个简单的例子来判断表达式的结果是否正确。

{% if online == false %}
<p>Our website is in maintenance mode. Please, come back later.</p>
{% endif %}

2.你也可以测试数组是否为空

{% if users %}
    <ul>
        {% for user in users %}
            <li>{{ user.username|e }}</li>
        {% endfor %}
    </ul>
{% endif %}

也可以用作判断变量是否定义

3.如果有更多的分支条件elseif和else在PHP中的一样被使用,你可以运用更复杂的表达式如下:

{% if kenny.sick %}
Kenny is sick.
{% elseif kenny.dead %}
You killed Kenny! You bastard!!!
{% else %}
Kenny looks okay — so far
{% endif %}

判断表达式正确与否的规则与PHP里面一样。这里有一个边缘条件规则:

逻辑判断
empty stringfalse
numeric zerofalse
whitespace-only stringtrue
empty arrayfalse
nullfalse
non-empty arraytrue
objecttrue

4.逻辑运算

运算符描述
and
or

for语句

遍历序列中每个个体,比如:

<h1>Members</h1>
<ul>
    {% for user in users %}
        <li>{{ user.username|e }}</li>
    {% endfor %}
</ul>
循环变量
变量描述
loop.index当前循环的次数(从1开始)
loop.index0当前循环的次数 (从0开始)
loop.revindex当前循环剩余次数(从1开始)
loop.revindex0当前循环剩余次数(从0开始)
loop.first当第一次循环的时候返回true
loop.last当最后一次循环的时候返回true
loop.length循环的总数
loop.parent被循环的数组
添加一个条件

跟PHP不一样,在循环内部不支持break和continue语句,你只能通过过滤器去跳过一些循环,就像这样

<ul> 
    {% for user in users if user.active %} 
        <li>{{ user.username|e }}</li> 
    {% endfor %} 
</ul> 
<ul>
    {% for user in users if user.active %}
        <li>{{ user.username|e }}</li>
    {% endfor %}
</ul>
else 分支

如果 users是个空数组就会输出no user found 。

<ul> 
    {% for user in users %} 
        <li>{{ user.username}}</li> 
    {% else %} 
        <li><em>no user found</em></li> 
    {% endfor %} 
</ul> 
<ul>
    {% for user in users %}
        <li>{{ user.username}}</li>
    {% else %}
        <li><em>no user found</em></li>
    {% endfor %}
</ul>
按keys循环
<h1>Members</h1> 
<ul> 
    {% for key in users|keys %} 
        <li>{{ key }}</li> 
    {% endfor %} 
</ul> 
<h1>Members</h1>
<ul>
    {% for key in users|keys %}
        <li>{{ key }}</li>
    {% endfor %}
</ul>
按keys, values循环
<h1>Members</h1> 
<ul> 
    {% for key, user in users %} 
        <li>{{ key }}: {{ user.username|e }}</li> 
    {% endfor %} 
</ul> 
<h1>Members</h1>
<ul>
    {% for key, user in users %}
        <li>{{ key }}: {{ user.username|e }}</li>
    {% endfor %}
</ul>
按子集合循环
<h1>Top Ten Members</h1>
<ul>
    {% for user in users|slice(0, 10) %}
        <li>{{ user.username|e }}</li>
    {% endfor %}
</ul>

转载于:https://www.cnblogs.com/phpxuetang/p/5669750.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值