个性化阅读
专注于IT技术分析

如何使用短语法使用Twig检查变量是否存在以及是否为空

如果没有转储扩展, 那么Twig中变量的内容验证可能会非常困难。即使使用它, 有时你也会很懒惰, 并且会假设一些从PHP发送到Twig的变量的内容, 通常, 变量可以为空, 并且根据它, 你可能想做一些不同的事情, 例如打印其他文本等。开发人员习惯了空测试:

{# Or {% set variable = null %} as well #}
{% set variable = "" %}

{% if variable is empty %}
    The variable is empty.
{% else %}
    The variable is not empty.
{% endif %}

如果变量的值为空字符串或null, 则打印的文本将为”变量为空”。同样, 你可能要检查数组内的属性是否为空:

{# Or {% set variable = null %} as well #}
{% set variable = {
    "name": "Carlos", "lastName": "Delgado"
} %}

{% if variable.name is empty %}
    The variable is empty.
{% else %}
    The variable is not empty.
{% endif %}

在这种情况下, 变量存在并且定义了名称键, 因此它将显示”变量不为空”。但是, 如果不存在要验证键是否存在的变量, 该怎么办?你可能需要扩展以下内容:

{% if variable is defined %}
    {% if variable.name is empty %}
        The variable is empty.
    {% else %}
        The variable is not empty.
    {% endif %}
{% else %}
    The variable is not defined.
{% endif %}

在这种情况下, 由于我们的变量不存在, 它将显示”变量未定义或不为空”。有点混乱, 不是很久吗?甚至忽略了你不想向用户显示未定义变量而是仅显示”变量为空”的消息。如果我告诉你有更简单的方法怎么办?使用默认过滤器!

使用默认过滤器

使用默认过滤器, 你可以轻松地验证变量是否同时存在和不为空:

{% if variable.name|default %}
    The variable is not empty
{% else %}
    The variable is empty.
{% endif %}

在这种情况下, 过滤器将首先验证变量” variable”是否存在, 如果存在, 则在这种情况下继续键名(如果存在且不为空), 则返回true, 因此将打印第一条消息。另一方面, 如果键存在但其值为空, 则条件将返回false:

{# Or {% set variable = null %} as well #}
{% set variable = {
    "name": null, "lastName": "Delgado"
} %}

{% if variable.name|default %}
    The variable is not empty
{% else %}
    The variable is empty.
{% endif %}

在这种情况下将显示”变量为空”。要了解有关默认过滤器的更多信息, 请不要忘记阅读Twig网页上过滤器的官方文档。

编码愉快!

赞(0)
未经允许不得转载:srcmini » 如何使用短语法使用Twig检查变量是否存在以及是否为空

评论 抢沙发

评论前必须登录!