Php 如何检查twig文件中是否定义了数组元素?

Php 如何检查twig文件中是否定义了数组元素?,php,twig,Php,Twig,我正在尝试访问阵列,但无法访问。 在my config.yml中,以下是我的数组: abc : [xyz] 在另一个文件中,我正在编写以下代码来访问abc数组 {% if abc[0] is defined) %} then do something {% endif %} 但不知怎么的,它不起作用。请帮助我,我是这方面的新手。根据评论,我建议使用foreach循环,并根据索引值定义ifs。大概是这样的: {% for abcs in abc %} {% if (loop.in

我正在尝试访问阵列,但无法访问。 在my config.yml中,以下是我的数组:

abc : [xyz]
在另一个文件中,我正在编写以下代码来访问abc数组

 {% if abc[0] is defined) %}
then do something
  {% endif %}

但不知怎么的,它不起作用。请帮助我,我是这方面的新手。

根据评论,我建议使用foreach循环,并根据索引值定义ifs。大概是这样的:

{% for abcs in abc %}
    {% if (loop.index == 0) %}
         then do something
    {% endif %}
{% endfor %}

BR的

这取决于变量是否始终声明:

如果始终声明变量且数组可以为空 Twig中的
不是空的
相当于
!在PHP中为空($variable)
。提供数组时,
不为空
将检查数组中是否有值和/或值

如果变量不是始终声明的 检查
abc
变量是否已声明且不为空:

{% if (abc is declared) and (abc is not empty) %}
    {# then do something #}
{% endif %}
Twig中声明的
相当于PHP中的
isset($variable)


.

此时,我无法理解为什么您要尝试使用数组类型,而您可以使用字符串代替,因为我的数组可以有多个元素。其中一个答案解决了您的问题?在第二行中,我们必须编写abc,而不是循环。否。loop.index是正确的。这是文档-@user2831723,您可以使用
{%if loop.start%}
,它更简单。(请注意,您的代码有输入错误,
没有左括号)
{% if (abc is declared) and (abc is not empty) %}
    {# then do something #}
{% endif %}