symfony中twig的流程控制if,for用法
2016-07-14 11:17
260 查看
流程控制
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 string | false |
numeric zero | false |
whitespace-only string | true |
empty array | false |
null | false |
non-empty array | true |
object | true |
运算符 | 描述 |
---|---|
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>
[/code]
相关文章推荐
- 洛谷 P1079 Vigenère 密码
- 百度通过经纬度获取地址
- JAVA定时任务Quartz
- lua语言入门之Sublime Text设置lua的Build System
- 关于Shell脚本编程不得不知的几个细节
- QtQuick一分钟技巧:使用C++保存全局数据
- 关于qmail的笔记
- 安装mysql Install/Remove of the Service Denied!错误的解决办法
- 网络数据包检查,抓包形式
- 创建数据库并授权
- Linux编写程序入门
- 【程序员】:程序员经常去的社区
- 下载多个平台并运行一个实例
- Android提高第五篇之Service
- React Native专题
- 致我已逝的青春年少
- 启动activity的过程追踪
- OGL颜色和图片颜色存储位移压缩
- Android开发中常用的工具类整理
- Android开发中常用的工具类整理