我应该使用什么构造来检查Twig模板中的值是否为NULL?如何检查小枝中的null?
回答
根据你需要的东西:
is null
检查值是否为null
:{% if var is null %} {# do something #} {% endif %}
is defined
检查变量是否已定义:{% if var is not defined %} {# do something #} {% endif %}
此外,该is sameas
测试,做两个值的类型严格比较,可能会感兴趣的检查以外的数值时null
(如false
):
{% if var is sameas(false) %}
{# do something %}
{% endif %}
我不认为你可以。这是因为如果变量模板中的变量未定义(未设置),它看起来像NULL
或none
(以树枝形式表示)。我很确定这是为了抑制在模板中发生错误的访问错误。
由于缺乏嫩枝一个“身份”(===
),这是最好的,你可以做
{% if var == null %}
stuff in here
{% endif %}
翻译为:
if ((isset($context['somethingnull']) ? $context['somethingnull'] : null) == null)
{
echo "stuff in here";
}
哪个如果你的好你的type juggling意味着诸如0
,''
,FALSE
,NULL
和未定义的var之类的东西也会使该语句成为真。
我的建议是要求将身份实施到Twig中。
肯德尔是正确的,建议他们实现它 - 我有什么,但好的经验要求的东西要在枝条的GitHub的问题跟踪落实。他们非常友好和专业。 – Shabbyrobe 2010-07-17 05:36:06
@ kendall-hopkins好奇,什么时候适合使用'{if var is none}'以及什么是PHP等价物? – noisebleed 2012-02-07 16:19:07
@noisebleed'{%if abcxyz is none%}''if(isset($ context [“abcxyz”])){$ _abcxyz_ = $ context [“abcxyz”]; } else {$ _abcxyz_ = null; } if((null === $ _abcxyz_)){echo“hi”;}' ' }'。所以基本上,如果该值是未定义的或为空,那将是事实。 – 2012-02-08 04:24:21
如何在树枝设置默认值:http://twig.sensiolabs.org/doc/filters/default.html
{{ my_var | default("my_var doesn't exist") }}
或者,如果你不希望它显示当空:
{{ my_var | default("") }}
那么它是否区分'undefined或empty'和'null'? – Fluffy 2011-10-27 08:26:44
看起来像这样是检查的正确方法...耻辱它没有很多upvotes。 – 2012-02-29 19:44:47
正是我在找的东西。 必须确保您拥有|默认情况下,您可以尝试默认其他变量,如: {{my_var |默认(my_var2)}} 我刚测试过,但你甚至可以继续链接如下: {{my_var |默认(my_var2)|默认(“my_var和my_var2不存在”)}} – 2013-10-01 10:17:56
您可以使用下面的代码来检查是否
{% if var is defined %}
var is variable is SET
{% endif %}
没有任何假设的答案是:
{% if var is null %}
但是,只有当var
正是NULL
,而不是任何其他价值,这将是真实的,评估为false
(如零,空字符串和空数组)。此外,如果未定义var
,则会导致错误。一个更安全的方法是:
{% if var is not defined or var is null %}
可以简化为:
{% if var|default is null %}
如果不提供的参数来default
过滤器,它假定NULL
(默认排序默认的)。所以,最短,最安全的方式(我知道)检查变量是否为空(NULL,假,空字符串/数组等):
{% if var|default is empty %}
//test if varibale exist
{% if var is defined %}
//todo
{% endif %}
//test if variable is not null
{% if var is not null %}
//todo
{% endif %}
你也可以使用一个线做到这一点:
{{ yourVariable is not defined ? "Not Assigned" : "Assigned" }}
- 1. 如何检查Scala.js中的null?
- 2. MVC如何检查model.property中的NULL
- 3. 函数'null'在小枝不起作用
- 4. 如何在javaScript函数中检查null?
- 5. 如何检查null是否在流中?
- 6. 如何在C++中检查null类
- 7. 如何检查目标C中的字符数组为null null
- 8. 什么检查枝条文件的语法。 (小枝文件语法检查程序)
- 9. 小枝内部的小枝模板
- 10. 在LINQ查询中检查NULL的小数点
- 11. 如何使用redis-scripto和redis DB在NULL中检查null \ nil?
- 12. 的Java:检查null
- 13. 如何检查python中的float大小?
- 14. 如何检查树枝中是否存在捆绑包?
- 15. 如何检查一个块是否在树枝中被覆盖?
- 16. Null值检查
- 17. NSData null检查
- 18. 检查空,== NULL VS = NULL
- 19. 如何检查它是否返回null?
- 20. php mysql如何用php检查NULL列
- 21. 如何为枚举执行null检查
- 22. 如何在scala.math.BigDecimal上检查null?
- 23. 如何检查SqlDataSource.SelectCommand是否返回null
- 24. 小枝检查数值是否在数组
- 25. 小枝{%if myId in myArray%}不检查唯一值?
- 26. 在Java中检查NULL
- 27. 如何检查是否在树枝模板存在块 - Symfony2的
- 28. Java string null检查!= null或!str.equals(null)?
- 29. MySQL如何检查列表中的任何值是否为NULL?
- 30. 如何检查rms中的第一个值在j2me中为null?
这是现在的小枝 – 2011-09-11 00:32:31
的正确答案并检查是否有不为空,只需执行'{%if var is null'} – 2012-09-06 19:31:00
快速注意到:$ var == null将返回true与$ var是0,但$ var是null将返回false – daSn0wie 2013-02-13 21:32:05