This library adds a new operator expression to Twig with three question marks (???
) to check if the left value is defined, not null and not empty. Works the same way as the empty
test and the |default
filter.
{% set _null = null %}
{% set _empty = '' %}
{# Null Coalesce: Output will be string(0) "" because _empty is defined and not exactly null #}
{{ dump(_undefined ?? _null ?? _empty ?? 'fallback') }}
{# Default Filter: Output will be string(8) "fallback" because _empty is defined, but an empty string #}
{{ dump(_undefined | default(_null | default(_empty | default('fallback')))) }}
{# Same as the default filter, but much more readable #}
{{ dump(_undefined ??? _null ??? _empty ??? 'fallback') }}
- Twig >=2.14 and Twig >=3.0
- PHP >=7.4
The recommended way to install this loader is via Composer:
composer require gglnx/twig-empty-coalesce
You can install this library as extension in:
require_once '/path/to/vendor/autoload.php';
$twig = new \Twig\Environment($loader);
$twig->addExtension(new \Gglnx\TwigEmptyCoalesce\Extension\EmptyCoalesceExtension());