Ошибка со значением «по умолчанию» аргументы фильтра и логического макроса в Twig/Symfony 2?

Я использую фильтрпо умолчаниюTwig для указания значений аргументов по умолчанию в моем макросе :

{% macro base(type, title, content, separator, dismissable) %}
{% spaceless %}

    {% debug dismissable %}

    {% set separator   = separator|default('!') %}
    {% set dismissable = dismissable|default(true) %}

    {% debug dismissable %}

    {# Beginning outputting... #}
{% endspaceless %}
{% endmacro %}

Проблемазаключается в том, что увольняемыйтип аргумента должен быть логическим.Однако при передаче falseфильтр оценивает его и присваивает trueзначение по умолчанию. Пример вывода :

{{ base('success', 'Title', 'Hello', '!', false) }}

boolean false
boolean true

Это ошибка? Вот (часть) описание фильтра:

Фильтр по умолчанию возвращает переданное значение по умолчанию, если значение не определено или пусто, иначе значение переменной.

Вычисление логического falseдаже не упоминается. Мой временный обходной путь:

{% set dismissable = dismissable is not defined or dismissable is null ?
    true : dismissable %}

5
задан j0k 20 September 2012 в 19:41
поделиться