if¶
这个 if Twig中的语句与PHP的if语句相当。
在最简单的形式中,您可以使用它来测试表达式的计算结果是否为 true :
1 2 3 | {% if online == false %}
<p>Our website is in maintenance mode. Please, come back later.</p>
{% endif %}
|
还可以测试数组是否不为空:
1 2 3 4 5 6 7 | {% if users %}
<ul>
{% for user in users %}
<li>{{ user.username|e }}</li>
{% endfor %}
</ul>
{% endif %}
|
注解
如果要测试变量是否已定义,请使用 if users is defined 相反。
您也可以使用 not 检查计算结果为的值 false :
1 2 3 | {% if not user.subscribed %}
<p>You are not subscribed to our mailing list.</p>
{% endif %}
|
对于多种情况, and 和 or 可用于:
1 2 3 | {% if temperature > 18 and temperature < 27 %}
<p>It's a nice day for a walk in the park.</p>
{% endif %}
|
对于多个分支 elseif 和 else 可以像在PHP中一样使用。你可以用更复杂的 expressions 还有:
1 2 3 4 5 6 7 | {% if product.stock > 10 %}
Available
{% elseif product.stock > 0 %}
Only {{ product.stock }} left!
{% else %}
Sold-out!
{% endif %}
|
注解
确定表达式是否为 true 或 false 与PHP中的相同;以下是边缘情况规则:
| 价值 | 布尔运算 |
|---|---|
| 空字符串 | 假 |
| 数字零 | 假 |
| 南(不是数字) | 真 |
| INF(无穷大) | 真 |
| 纯空白字符串 | 真 |
| 字符串“0”或“0” | 假 |
| 空数组 | 假 |
| 无效的 | 假 |
| 非空数组 | 真 |
| 对象 | 真 |