我应该使用什么结构来检查一个值是否为NULL在树枝模板?
当前回答
具体取决于你需要什么:
Is null检查值是否为空: {%如果var为空%} {#做某事#} {% endif %} Is defined检查变量是否已定义: {%如果var没有定义%} {#做某事#} {% endif %}
此外,is sameas测试对两个值进行严格的类型比较,对于检查null以外的值(如false)可能会感兴趣:
{% if var is sameas(false) %}
{# do something %}
{% endif %}
其他回答
此外,如果你的变量是一个ARRAY,也有几个选项:
{% if arrayVariable[0] is defined %}
#if variable is not null#
{% endif %}
OR
{% if arrayVariable|length > 0 %}
#if variable is not null#
{% endif %}
这只会在你的数组被定义并且为NULL的情况下起作用
你也可以用一行来做到这一点:
{{ yourVariable is not defined ? "Not Assigned" : "Assigned" }}
//test if varibale exist
{% if var is defined %}
//todo
{% endif %}
//test if variable is not null
{% if var is not null %}
//todo
{% endif %}
不做任何假设,答案是:
{% if var is null %}
但只有当var完全为NULL,而不是任何其他值为false(如零,空字符串和空数组)时,这才为真。此外,如果没有定义var,则会导致错误。更安全的方法是:
{% if var is not defined or var is null %}
可以缩写为:
{% if var|default is null %}
如果不为默认过滤器提供参数,则默认为NULL(类似于默认的default)。所以(我知道)检查变量是否为空(null, false,空字符串/数组等)的最短和最安全的方法:
{% if var|default is empty %}
您可以使用下面的代码检查是否
{% if var is defined %}
var is variable is SET
{% endif %}
推荐文章
- 致命错误:未找到类“SoapClient”
- 我目前使用的是哪个版本的CodeIgniter ?
- 合并两个PHP对象的最佳方法是什么?
- 如何使HTTP请求在PHP和不等待响应
- 发送附件与PHP邮件()?
- 如何获得当前的路线在Symfony 2?
- 用PHP删除字符串的前4个字符
- mysql_connect():[2002]没有这样的文件或目录(试图通过unix:///tmp/mysql.sock连接)在
- 一个函数的多个返回值
- 在PHP中使用foreach循环时查找数组的最后一个元素
- 检查数组是否为空
- PHP DOMDocument loadHTML没有正确编码UTF-8
- PHP在个位数数前加上前导零
- PHPMailer字符编码问题
- 删除多个空白空间