为什么这个枝条声明表现得很奇怪?

时间:2017-01-27 09:14:37

标签: php twig

我只是在树枝上做了一个奇怪的行为。

我刚刚在一个没有设置任何键的数组上使用了for(),但之前已添加到数组中。对于测试用例,只需假设这个php数组:

$array = array (
    0 => 'test1',
    1 => 'test2',
    'someKey' => 'test3'
)

所以,我在树枝上做了这个:

{% for key, value in array %}
    {% if key == 'someKey' %}
        {{ 'something special happend' }}
    {% else %}
        {{ 'how boring' }}
    {% endif %}
{% endfor %}

让我措手不及的事实是something special happend被称为两次

经过一番搜索,我发现这个案例对于密钥0也是如此。

所以我尝试了以下:

{{ dump (key == 'someKey') }}

结果是

  1. true
  2. false
  3. 所以我做了另一个测试:

    {{ dump(key|lower == 'somekey') }}
    

    结果是

    1. false
    2. false
    3. 因为我想确定,这是我的最后一次测试

      {{ dump(0 == 'somekey') }}
      {{ dump(0|lower == 'somekey') }}
      

      结果是

      1. true
      2. false
      3. 为什么这样的行为是这样的?我无法解释。

        PS:我知道我可以使用same as运算符,但我很好奇它是如何工作的。

0 个答案:

没有答案