我应该使用什么结构来检查一个值是否为NULL在树枝模板?
当前回答
我认为你做不到。这是因为如果一个变量在树枝模板中未定义(未设置),它看起来像NULL或none(在树枝术语中)。我很确定这是为了防止在模板中发生糟糕的访问错误。
由于在《Twig》中缺少“身份”(===),这是你所能做的最好的事情
{% if var == null %}
stuff in here
{% endif %}
翻译过来就是:
if ((isset($context['somethingnull']) ? $context['somethingnull'] : null) == null)
{
echo "stuff in here";
}
如果你擅长你的类型杂耍,这意味着像0,“,FALSE, NULL,和一个未定义的变量也会使该声明为真。
我的建议是要求将身份实现到Twig中。
其他回答
此外,如果你的变量是一个ARRAY,也有几个选项:
{% if arrayVariable[0] is defined %}
#if variable is not null#
{% endif %}
OR
{% if arrayVariable|length > 0 %}
#if variable is not null#
{% endif %}
这只会在你的数组被定义并且为NULL的情况下起作用
您可以使用下面的代码检查是否
{% if var is defined %}
var is variable is SET
{% endif %}
我认为你做不到。这是因为如果一个变量在树枝模板中未定义(未设置),它看起来像NULL或none(在树枝术语中)。我很确定这是为了防止在模板中发生糟糕的访问错误。
由于在《Twig》中缺少“身份”(===),这是你所能做的最好的事情
{% if var == null %}
stuff in here
{% endif %}
翻译过来就是:
if ((isset($context['somethingnull']) ? $context['somethingnull'] : null) == null)
{
echo "stuff in here";
}
如果你擅长你的类型杂耍,这意味着像0,“,FALSE, NULL,和一个未定义的变量也会使该声明为真。
我的建议是要求将身份实现到Twig中。
//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" }}
推荐文章
- 如何将XML转换成PHP数组?
- 如何将对象转换为数组?
- 从IP地址获取位置
- 获取数组值的键名
- HTTPS和SSL3_GET_SERVER_CERTIFICATE:证书验证失败,CA is OK
- PHP -获取bool值,当为false时返回false
- 在foreach中通过引用传递
- 如何触发命令行PHP脚本的XDebug分析器?
- 如何找出如果你使用HTTPS没有$_SERVER['HTTPS']
- 更好的方法检查变量为null或空字符串?
- 当使用Composer的开发/生产开关时,如何正确部署?
- 自动删除Laravel (Eloquent ORM)中的相关行
- 在取消设置元素后重新设置数组键
- 如何修剪空白的数组值在php
- PHP中的双not(!!)操作符